将List对象转换为java中的long []数组的最佳方式是什么?

有没有任何实用程序方法将数值类型列表转换为数组的原始类型?
换句话说,我正在寻找一个比这更好的解决方案。

private long[] toArray(List<Long> values) {
    long[] result = new long[values.size()];
    int i = 0;
    for (Long l : values)
        result[i++] = l;
    return result;
}
自从Java 8以来,您可以执行以下操作:

long[] result = values.stream().mapToLong(l -> l).toArray();

这里发生了什么

>我们将List< Long>进入流< Long>。
>我们打电话给mapToLong来获取一个LongStream

> mapToLong的参数是ToLongFunction,其结果类型很长。
>因为Java自动解包长一长,写l – > l作为lambda表达式。长长期在那里被转换。我们也可以更加明确地使用Long :: longValue。

>我们打电话toArray,返回长[]

翻译自:https://stackoverflow.com/questions/6175004/what-is-the-best-way-of-converting-listlong-object-to-long-array-in-java

转载注明原文:将List对象转换为java中的long []数组的最佳方式是什么?