Module  java.base
软件包  java.util

Interface Iterator<E>

    • 方法摘要

      所有方法  接口方法  抽象方法  Default Methods 
      Modifier and Type 方法 描述
      default void forEachRemaining​(Consumer<? super E> action)
      对每个剩余元素执行给定的操作,直到所有元素都被处理或动作引发异常。
      boolean hasNext​()
      如果迭代具有更多元素,则返回 true
      E next​()
      返回迭代中的下一个元素。
      default void remove​()
      从底层集合中删除此迭代器返回的最后一个元素(可选操作)。
    • 方法详细信息

      • hasNext

        boolean hasNext​()
        如果迭代具有更多元素,则返回true (换句话说,如果true将返回一个元素而不是抛出异常,则返回true
        结果
        true如果迭代有更多的元素
      • next

        E next​()
        返回迭代中的下一个元素。
        结果
        迭代中的下一个元素
        异常
        NoSuchElementException - 如果迭代没有更多的元素
      • remove

        default void remove​()
        从底层集合中删除此迭代器返回的最后一个元素(可选操作)。 这种方法只能在每次调用next()调用一次。

        如果在迭代正在进行中,除了通过调用此方法之外的任何方式修改底层集合,否则迭代器的行为是未指定的,除非重写类已指定并发修改策略。

        如果在调用forEachRemaining方法后调用此方法, 则不指定迭代器的行为。

        实现要求:
        默认实现会抛出一个UnsupportedOperationException的实例,并且不执行其他操作。
        异常
        UnsupportedOperationException - 如果此迭代器不支持 remove操作
        IllegalStateException - 如果 next方法尚未被调用,或 remove方法在最后一次调用 next方法之后已经被调用
      • forEachRemaining

        default void forEachRemaining​(Consumer<? super E> action)
        对每个剩余元素执行给定的操作,直到所有元素都被处理或动作引发异常。 如果指定了该顺序,则按迭代的顺序执行操作。 动作抛出的异常被转发给呼叫者。

        如果操作以任何方式修改集合(即使通过调用remove方法或Iterator子类型的其他mutator方法),迭代器的行为也是未指定的,除非重写类已指定并发修改策略。

        如果动作引发异常,则未指定迭代器的后续行为。

        实现要求:

        默认实现的行为如下:

           while (hasNext()) action.accept(next());  
        参数
        action - 要对每个元素执行的操作
        异常
        NullPointerException - 如果指定的操作为空
        从以下版本开始:
        1.8