在iterable
上使用外部迭代时,我们使用增强的for-each循环中的break
或return
作为:
for (SomeObject obj : someObjects) {
if (some_condition_met) {
break; // or return obj
}
}
如何使用Java 8 lambda表达式中的内部迭代来break
或return
:
someObjects.forEach(obj -> {
//what to do here?
})
如果需要这样做,则不应使用foreach
,而应使用流上可用的其他方法之一;哪一个,取决于你的目标是什么。
例如,如果此循环的目标是查找与某个谓词匹配的第一个元素:
Optional<SomeObject> result =
someObjects.stream().filter(obj -> some_condition_met).findFirst();
(注意:这不会迭代整个集合,因为流是懒洋洋地求值的--它会在匹配条件的第一个对象处停止)。
如果只想知道集合中是否存在条件为true的元素,则可以使用anymatch
:
boolean result = someObjects.stream().anyMatch(obj -> some_condition_met);
问题内容: 当在上使用外部迭代时,我们使用或从增强的循环中获取: 我们如何或在Java 8 lambda表达式中使用内部迭代,例如: 问题答案: 如果需要,则不应使用,而应使用流中可用的其他方法之一。哪一个取决于你的目标是什么。 例如,如果此循环的目标是找到与某些谓词匹配的第一个元素: (注意:这不会迭代整个集合,因为流是惰性计算的-它将在与条件匹配的第一个对象处停止)。 如果你只想知道集合中是否
产出: 请提供2个方法将产生不同输出的例子。
我正在从文件中读取值并获取列表。如下- 一旦我得到这个
在这篇文章中我将向你演示如何使用Java8中的foreach操作List和Map 1. Foreach操作Map 1.1 正常方式遍历Map Map<String, Integer> items = new HashMap<>(); items.put("A", 10); items.put("B", 20); items.put("C", 30); items.put("D", 40); ite
有一个简单的: 以及任务对象的列表。如何通过使用获得每个作为的列表。我试过这个: 但它返回
问题内容: 我试图将一些for-each循环更改为lambda- 方法,以发现lambda表达式的可能性。以下似乎是可能的: 带lambda 但是下一个无效: 带lambda 最后一行的语法是否有问题,或者不可能从方法中返回? 问题答案: 在那里,从λ表达式,而不是从包含方法返回。而不需要流: 这里将流限制为与谓词匹配的那些项,然后返回带有第一个匹配条目的。 这看起来不如for循环方法有效,但实际