有没有任何实用工具方法将数值类型列表转换为基本类型数组?换句话说,我正在寻找比这更好的解决方案.
private long[] toArray(List<Long> values) {
long[] result = new long[values.size()];
int i = 0;
for (Long l : values)
result[i++] = l;
return result;
}
Run Code Online (Sandbox Code Playgroud)
rob*_*nst 45
从Java 8开始,您可以执行以下操作:
long[] result = values.stream().mapToLong(l -> l).toArray();
Run Code Online (Sandbox Code Playgroud)
这里发生了什么事?
List<Long>成了一个Stream<Long>.mapToLong它得到一个LongStream
mapToLong是a ToLongFunction,它有一个long结果类型.Long将a 打开到a long,所以写l -> l为lambda表达式.将Long被转换为long那里.我们也可以更明确地使用Long::longValue.toArray,返回一个long[]mel*_*iny 13
使用ArrayUtils.toPrimitive(Long[] array)来自Apache的百科全书.
Long[] l = values.toArray(new Long[values.size()]);
long[] l = ArrayUtils.toPrimitive(l);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38176 次 |
| 最近记录: |