模块 java.base
 java.util

接口 ListIterator<E>

类型参数:
E - 此list迭代器返回的元素类型
所有父级接口:
Iterator<E>

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

此接口是 Java 集合框架 的成员。

自从:
1.2
参见:
  • 方法总结

    修饰符和类型
    方法
    描述
    void
    add(E e)
    将指定元素插入列表(可选操作)。
    boolean
    如果此list迭代器在向前遍历列表时有更多元素,则返回 true
    boolean
    如果此list迭代器在反向遍历列表时有更多元素,则返回 true
    E
    next()
    返回列表中的下一个元素并前进光标位置。
    int
    返回将由后续调用 next() 返回的元素的索引。
    E
    返回列表中的前一个元素并向后移动光标位置。
    int
    返回将由后续调用 previous() 返回的元素的索引。
    void
    从列表中删除 next() previous() 返回的最后一个元素(可选操作)。
    void
    set(E e)
    用指定的元素替换 next() previous() 返回的最后一个元素(可选操作)。

    在接口 java.util.Iterator 中声明的方法

    forEachRemaining
  • 方法详情

    • hasNext

      boolean hasNext()
      如果此list迭代器在向前遍历列表时有更多元素,则返回 true。 (换句话说,如果 next() 将返回一个元素而不是抛出异常,则返回 true。)
      指定者:
      hasNext 在接口 Iterator<E>
      返回:
      true如果列表迭代器在正向遍历列表时有更多的元素
    • next

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

      boolean hasPrevious()
      如果此list迭代器在反向遍历列表时有更多元素,则返回 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 只能调用一次。仅当在最后一次调用 nextprevious 后未调用 add(E) 时才能进行。
      指定者:
      remove 在接口 Iterator<E>
      抛出:
      UnsupportedOperationException - 如果此list迭代器不支持 remove 操作
      IllegalStateException - 如果 nextprevious 都没有被调用,或者在最后一次调用 nextprevious 之后调用了 removeadd
    • set

      void set(E  e)
      用指定的元素替换 next() previous() 返回的最后一个元素(可选操作)。仅当在最后一次调用 nextprevious 之后既未调用 remove() 也未调用 add(E) 时,才能进行此调用。
      参数:
      e - 用于替换 nextprevious 返回的最后一个元素的元素
      抛出:
      UnsupportedOperationException - 如果此list迭代器不支持 set 操作
      ClassCastException - 如果指定元素的类阻止它被添加到这个列表
      IllegalArgumentException - 如果指定元素的某些方面阻止它被添加到这个列表
      IllegalStateException - 如果 nextprevious 都没有被调用,或者在最后一次调用 nextprevious 之后调用了 removeadd
    • add

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