【问题标题】:Iterators.any in Guava libraryGuava 库中的 Iterators.any
【发布时间】:2014-08-24 16:05:05
【问题描述】:

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

类迭代器

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

【问题讨论】:

    标签: java collections iterator guava


    【解决方案1】:

    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 }
    

    这是一个普通的迭代器。

    它将迭代,直到找到一个可以用于谓词的元素。当它因为return true; 而完成时,这意味着至少一个元素满足条件,但可能发生其他元素也满足条件而无需检查。 (这是Returns true if one or more 部分)

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

    【讨论】:

      猜你喜欢
      • 2011-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-16
      • 2018-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多