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/