java - Guava 库中的 Iterators.any

标签 java collections iterator guava

Guava Iterators.any 方法文档提到此调用将返回一个或多个满足谓词的元素。这是否意味着即使第一个元素满足,谓词也会针对迭代器中的所有元素运行条件 ?

类迭代器

“如果迭代器返回的一个或多个元素满足给定的谓词,则返回 true。”

最佳答案

Iterators.any 来源:

647 public static <T> boolean any(
648       Iterator<T> iterator, Predicate<? super T> predicate) {
649     checkNotNull(predicate);
650     while (iterator.hasNext()) {
651       T element = iterator.next();
652       if (predicate.apply(element)) {
653         return true;
654       }
655     }
656     return false;
657 }

这是一个普通的迭代器。

它将迭代,直到找到适合谓词的元素。当它完成时,因为返回true;这意味着至少一个元素满足条件,但也可能发生其他元素也满足条件而无需检查。 (这就是如果有一个或多个则返回 true 部分)

但是如果没有人满足条件,它将返回 false,因为没有人停止迭代器。

关于java - Guava 库中的 Iterators.any,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24555274/

相关文章:

java - JTextPane 中未呈现 CSS 填充

java - 即使应用程序关闭也运行时钟或计时器 - Android

java - 注销后返回时验证用户

collections - 添加来自不同实例的集合

java - 如何根据 JsonArray 中的键值过滤列表

javascript - 如何在嵌套对象中找到具有特定属性的对象

c++ - 无法访问 vector 中的整数

C++ spirit boost : Making a input iterator into a forward iterator

java - 当 tomcat lib 文件夹中存在 postgre 驱动程序时,为什么 oracle jdbc 上的 hibernate 失败

c++ - vector 迭代器不兼容 : runtime error