請考慮以下代碼,該循環一旦達到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