我正在尝试使自己更熟悉Java 8 Stream API。 目前,我想翻译类似流的内容,但似乎我还不太满意,因为我不知道该怎么做。
boolean isTrue = false;
for (Integer integer : intList) {
if (integer > 10) {
isTrue = true;
break;
}
}
答案 0 :(得分:10)
您所关心的是,列表中至少有一个输入大于10,因此anyMatch
:
boolean isTrue = intList.stream()
.anyMatch(x -> x > 10);
答案 1 :(得分:3)
您迭代一个整数列表。因此,请使用Collection.stream()
您比较数值。因此,使用Stream.mapToInt()
来处理int
而不是Integer
会更有效。在这里它并不会改变很多事情,但是如果您将流更改为执行其他一些数值运算,则您已经使用了正确的方法。
,只要满足条件,便会对布尔值(结果)进行评估。否则我认为是错误的。因此,请使用Stream.anyMatch(Predicate)
。
所以这对应于:
boolean result =
intList.stream()
.mapToInt(i-> i)
.anyMatch(i-> i > 10);