我需要将 &&
(逻辑与)运算符应用于列表中的所有元素。问题是:在我当前的解决方案中,我需要初始化 rowResult
变量,我认为结果可能会变得无效,因为该变量具有初始值。
ArrayList<Boolean> results = new ArrayList<>();
for (i = 1; i < results.size(); i++) {
rowResult = rowResult && results.get(i);
}
最佳答案
如 Jon Skeet 或 CherryDT 所述,您可以使用 true 初始化 rowResult。那么您的代码可能如下所示:
boolean rowResult = true;
for (Boolean el: list) {
rowResult = el && rowResult;
}
如果要使用运算符OR
- ||
,初始值应设置为false
,运算符应设置为 ||
。
在 Java 8 中,您可以为流应用 reduce
方法:
List<Boolean> list = new ArrayList<>();
boolean rowResult = list.stream().reduce((a,b)-> a && b).orElse(true);
后者的优点是您可以应用任何逻辑运算符来代替 &&
。
在 java 8 示例中,可以将运算符更改为例如 ||
以应用 OR
。 orElse
语句中的值仅适用于列表为空的情况。
关于java - 如何将逻辑运算符应用于 Java 中的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37140888/