And*_*niy 23 java java-8 java-stream
没有很好的方法可以在一个语句中将给定boolean[] foo数组转换为Java-8 中的流,或者我错过了什么?
(我不会问为什么?,但实际上是不可理解的:为什么不为所有原始类型添加流支持?)
提示: Arrays.stream(foo)不起作用,没有这种boolean[]类型的方法.
Tag*_*eev 33
鉴于boolean[] foo使用
Stream<Boolean> stream = IntStream.range(0, foo.length)
.mapToObj(idx -> foo[idx]);
Run Code Online (Sandbox Code Playgroud)
请注意,每个布尔值都将被装箱,但它通常不是一个大问题,因为装箱布尔值没有分配额外的内存(只使用预定义值之一 - Boolean.TRUE或Boolean.FALSE).
您可以使用番石榴的Booleans类:
Stream<Boolean> stream = Booleans.asList(foo).stream();
Run Code Online (Sandbox Code Playgroud)
这是一种非常有效的方法,因为Booleans.asList返回数组的包装器并且不制作任何副本。
| 归档时间: |
|
| 查看次数: |
7530 次 |
| 最近记录: |