请考虑以下代码,该循环一旦达到false
值就可以完成。有没有比每次迭代后检查false
更好的方法?Iterable上的短路逻辑运算符
boolean result = true;
List<Boolean> bList = new ArrayList<>();
for (boolean b : bList) {
result = result && b;
if (!result) {
break;
}
}
请考虑以下代码,该循环一旦达到false
值就可以完成。有没有比每次迭代后检查false
更好的方法?Iterable上的短路逻辑运算符
boolean result = true;
List<Boolean> bList = new ArrayList<>();
for (boolean b : bList) {
result = result && b;
if (!result) {
break;
}
}
使用Stream.allMatch这是一个短路操作。
List<Boolean> bList = new ArrayList<>();
boolean result = bList.stream().allMatch(b -> b);
考虑提取循环到它的方法:
boolean allTrue(List<Boolean> bools) {
for (boolean b : bools)
if (!b)
return false;
}
return true;
}
什么
if (bList.contains(false)) {
...
见我的回答一个更通用的解决方案,可以让你在任何类型的Iterable'的'评估谓词。 – Roland
该方法可能更为通用,但其功能并不明显。:) – Reimeus