Omi*_*uri 7 java java-8 java-stream collectors
为什么当我从得到一个列表LongStream用Collectors.toList()了一个错误,但有Stream没有错误?
例子 :
错误:
Something.mapToLong(Long::parseLong).collect(Collectors.toList())
Run Code Online (Sandbox Code Playgroud)
正确:
Something.map(Long::valueOf).collect(Collectors.toList())
Run Code Online (Sandbox Code Playgroud)
有四种不同种类的流API: ,,Stream 和.后三者用于处理原始值,以及更好的性能.它们是针对这些原始类型而定制的,它们的方法与方法有很大不同.例如,有一个方法,但没有方法,因为你不能对任何类型的对象求和.由于收集器正在接受对象(JDK中没有特殊的原始收集器),原始流不能与收集器一起使用.IntStreamLongStreamDoubleStreamintlongdoubleStreamLongStream.sum()Stream.sum()
的Stream类可以被用于处理包括基本类型的包装类等的任何对象Integer,Long并且Double.正如您想要收集的那样List<Long>,那么您不需要long基元流,而是需要Long对象流.所以你需要Stream<Long>而map不是mapToLong.在mapToLong可能是有用的,例如,如果你需要一个原始long[]数组:
long[] result = Something.mapToLong(Long::valueOf).toArray();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1809 次 |
| 最近记录: |