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 次 |
最近记录: |