考虑以下代码,循环可以在达到false
值时立即完成。有没有比在每次迭代后检查false
更好的方法?
boolean result = true;
List<Boolean> bList = new ArrayList<>();
for (boolean b : bList) {
result = result && b;
if (!result) {
break;
}
}
答案 0 :(得分:4)
怎么样?
if (bList.contains(false)) {
...
答案 1 :(得分:1)
考虑将循环提取到其方法:
boolean allTrue(List<Boolean> bools) {
for (boolean b : bools)
if (!b)
return false;
}
return true;
}
答案 2 :(得分:0)
使用Stream.allMatch这是一种短路操作。
List<Boolean> bList = new ArrayList<>();
boolean result = bList.stream().allMatch(b -> b);