模块  java.base
软件包  java.util

Interface ListIterator<E>

  • All Superinterfaces:
    Iterator<E>

    public interface ListIterator<E>
    extends Iterator<E>
    列表的迭代器,允许程序员在任一方向上遍历列表,在迭代期间修改列表,并获取迭代器在列表中的当前位置。 ListIterator没有当前元素; 它的光标位置总是位于调用previous()返回的元素和调用previous()返回的元素next() 长度为n的列表的迭代器具有n+1可能的光标位置,如下面的^^ )所示:
      Element(0)   Element(1)   Element(2)   ... Element(n-1)
     cursor positions:  ^            ^            ^            ^                  ^ 
    请注意, remove()set(Object)方法根据光标位置定义; 它们被定义为对next()previous()调用返回的最后一个元素进行操作。

    此接口是Java Collections Framework的成员。

    从以下版本开始:
    1.2
    另请参见:
    CollectionListIteratorEnumerationList.listIterator()
    • 方法摘要

      所有方法  实例方法 抽象方法 
      变量和类型 方法 描述
      void add​(E e)
      将指定的元素插入列表(可选操作)。
      boolean hasNext()
      如果此列表迭代器在向前遍历列表时具有更多元素,则返回 true
      boolean hasPrevious()
      如果此列表迭代器在反向遍历列表时具有更多元素,则返回 true
      E next()
      返回列表中的下一个元素并前进光标位置。
      int nextIndex()
      返回后续调用 next()将返回的元素的索引。
      E previous()
      返回列表中的上一个元素并向后移动光标位置。
      int previousIndex()
      返回后续调用 previous()将返回的元素的索引。
      void remove()
      从列表中删除 next()previous() (可选操作)返回的最后一个元素。
      void set​(E e)
      用指定的元素替换 next()previous()返回的最后一个元素(可选操作)。
    • 方法详细信息

      • hasNext

        boolean hasNext()
        如果此列表迭代器在向前遍历列表时具有更多元素,则返回true (换句话说,如果next()返回一个元素而不是抛出异常,则返回true
        Specified by:
        hasNext在界面 Iterator<E>
        结果
        true如果列表迭代器在向前遍历列表时具有更多元素
      • next

        E next()
        返回列表中的下一个元素并前进光标位置。 可以重复调用此方法以遍历列表,或者与调用previous()混合以来传递 (请注意,对nextprevious交替调用将重复返回相同的元素。)
        Specified by:
        next ,界面 Iterator<E>
        结果
        列表中的下一个元素
        异常
        NoSuchElementException - 如果迭代没有下一个元素
      • hasPrevious

        boolean hasPrevious()
        如果此列表迭代器在反向遍历列表时具有更多元素,则返回true (换句话说,如果previous()返回一个元素而不是抛出异常,则返回true
        结果
        true如果列表迭代器在反向遍历列表时具有更多元素
      • previous

        E previous()
        返回列表中的上一个元素并向后移动光标位置。 可以重复调用此方法以向后迭代列表,或者与调用next()混合以来传递 (请注意,对nextprevious交替呼叫将重复返回相同的元素。)
        结果
        列表中的上一个元素
        异常
        NoSuchElementException - 如果迭代没有前一个元素
      • nextIndex

        int nextIndex()
        返回后续调用next()将返回的元素的索引。 (如果列表迭代器位于列表的末尾,则返回列表大小。)
        结果
        后续调用 next将返回的元素的索引,如果列表迭代器位于列表末尾,则返回列表大小
      • previousIndex

        int previousIndex()
        返回后续调用previous()返回的元素的索引。 (如果列表迭代器位于列表的开头,则返回-1。)
        结果
        后续调用 previous将返回的元素的索引,如果列表迭代器位于列表的开头,则返回-1
      • remove

        void remove()
        从列表中删除next()previous() (可选操作)返回的最后一个元素。 此呼叫只能在每次呼叫nextprevious拨打一次。 它可制成只有add(E)尚未到最后通话后称为nextprevious
        Specified by:
        remove在界面 Iterator<E>
        异常
        UnsupportedOperationException - 如果此列表迭代器不支持 remove操作
        IllegalStateException -如果没有 next也不 previous一直呼吁,或 removeadd的最后一次通话后,一直呼吁 nextprevious
      • set

        void set​(E e)
        用指定的元素替换next()previous()返回的最后一个元素(可选操作)。 只有在最后一次调用nextprevious后未调用remove()add(E)时,才能进行此调用。
        参数
        e - 用于替换 nextprevious返回的最后一个元素的元素
        异常
        UnsupportedOperationException - 如果此列表迭代器不支持 set操作
        ClassCastException - 如果指定元素的类阻止将其添加到此列表中
        IllegalArgumentException - 如果指定元素的某些方面阻止将其添加到此列表中
        IllegalStateException -如果没有 next也不 previous一直呼吁,或 removeadd的最后一次通话后,一直呼吁 nextprevious
      • add

        void add​(E e)
        将指定的元素插入列表(可选操作)。 该元素紧接在next()返回的元素之前插入(如果有),并且在previous()返回的元素之后插入 (如果有)。 (如果列表不包含任何元素,则新元素将成为列表中的唯一元素。)新元素在隐式游标之前插入:对next的后续调用不受影响,随后对previous调用将返回新元素。 (此调用将通过调用nextIndexpreviousIndex返回的值增加previousIndex
        参数
        e - 要插入的元素
        异常
        UnsupportedOperationException - 如果此列表迭代器不支持 add方法
        ClassCastException - 如果指定元素的类阻止将其添加到此列表中
        IllegalArgumentException - 如果此元素的某些方面阻止将其添加到此列表中