【发布时间】:2015-04-22 08:10:45
【问题描述】:
使用 Java 8+,您可以轻松找到集合中与 Predicate 匹配的所有元素。
someCollection.stream().filter(somePredicate)
然后你可以找到第一个元素:
someCollection.stream().filter(somePredicate).findFirst()
不过,问题在于它会针对所有元素运行Predicate。有没有一种干净的方法可以只对元素运行 Predicate 直到找到第一个匹配项,然后返回它,就像 anyMatch 所做的那样(但返回一个 boolean 告诉是否找到一个匹配项)?
【问题讨论】:
-
是什么让您认为它贯穿了
Stream的所有元素?
标签: java performance filtering predicate java-stream