There is no nice way to convert given boolean[] foo
array into stream in Java-8 in one statement, or I am missing something?
(I will not ask why?, but it is really incomprehensible: why not add stream support for all primitive types?)
Hint: Arrays.stream(foo)
will not work, there is no such method for boolean[]
type.
Given boolean[] foo
use
Stream<Boolean> stream = IntStream.range(0, foo.length) .mapToObj(idx -> foo[idx]);
Note that every boolean value will be boxed, but it's usually not a big problem as boxing for boolean does not allocate additional memory (just uses one of predefined values - Boolean.TRUE
or Boolean.FALSE
).
You can use Guava's Booleans
class:
Stream<Boolean> stream = Booleans.asList(foo).stream();
This is a pretty efficient way because Booleans.asList
returns a wrapper for the array and does not make any copies.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With