Java 8 Lambda on Primitive Boolean

时间:2018-02-27 23:04:36

标签: lambda java-8

如何使以下示例有效?

Boolean persistence =  Arrays.asList(new boolean[]{true, false})
                             .stream()
                             .filter(b -> b)
                             .findFirst().orElse(false); 

当我用boolean替换Boolean时,它可以正常工作。

1 个答案:

答案 0 :(得分:5)

你不能创建一个Stream原始布尔值,这是做你想要的最有效的方法。

boolean[] myArray = new boolean[]{ true, false };
boolean result = IntStream.range(0, myArray.length)
                          .anyMatch(index -> myArray[index]);

或者如果您愿意,可以用anyMatch - filter的方法替换findFirst