可以测试范围内的布尔数组元素吗?

时间:2016-03-06 22:12:52

标签: java arrays boolean do-while

考虑一个包含四个元素的布尔数组。最初,所有元素都是错误的。 do-while循环将执行一些测试并更改每个元素的状态,直到所有四个元素都为真。

boolean[] pickedSuits = new boolean[4];

do {
    ...some testing...

} while (pickedSuits[0] != true && pickedSuits[1] != true && pickedSuits[2] != true && pickedSuits[3] != true);

是否有Java方法来比较元素的范围而不是单独测试每个元素?我在想没有for循环,比如:

while (pickedSuits[0-3] != true);

2 个答案:

答案 0 :(得分:2)

虽然没有布尔流,但您可以使用IntStream

do {
    ...
} while (IntStream.range(0, pickedSuits.length).noneMatch(i -> pickedSuits[i]));

答案 1 :(得分:1)

如评论中所述,您可以编写辅助方法:

boolean rangeIsTrue(boolean[] arr, int start, int end) {
    for(int i = start; i < end; i++) if(!arr[i]) return false;
    return true;
}