-
- 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
- 另请参见:
-
Collection,List,Iterator,Enumeration,List.listIterator()
-
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 voidadd(E e)将指定的元素插入列表(可选操作)。booleanhasNext()如果此列表迭代器在向前遍历列表时具有更多元素,则返回true。booleanhasPrevious()如果此列表迭代器在反向遍历列表时具有更多元素,则返回true。Enext()返回列表中的下一个元素并前进光标位置。intnextIndex()返回后续调用next()将返回的元素的索引。Eprevious()返回列表中的上一个元素并向后移动光标位置。intpreviousIndex()返回后续调用previous()将返回的元素的索引。voidremove()从列表中删除next()或previous()(可选操作)返回的最后一个元素。voidset(E e)用指定的元素替换next()或previous()返回的最后一个元素(可选操作)。-
声明方法的接口 java.util.Iterator
forEachRemaining
-
-
-
-
方法详细信息
-
hasNext
boolean hasNext()
如果此列表迭代器在向前遍历列表时具有更多元素,则返回true。 (换句话说,如果next()返回一个元素而不是抛出异常,则返回true)
-
next
E next()
- Specified by:
-
next,界面Iterator<E> - 结果
- 列表中的下一个元素
- 异常
-
NoSuchElementException- 如果迭代没有下一个元素
-
hasPrevious
boolean hasPrevious()
如果此列表迭代器在反向遍历列表时具有更多元素,则返回true。 (换句话说,如果previous()返回一个元素而不是抛出异常,则返回true)- 结果
-
true如果列表迭代器在反向遍历列表时具有更多元素
-
previous
E previous()
- 结果
- 列表中的上一个元素
- 异常
-
NoSuchElementException- 如果迭代没有前一个元素
-
nextIndex
int nextIndex()
返回后续调用next()将返回的元素的索引。 (如果列表迭代器位于列表的末尾,则返回列表大小。)- 结果
-
后续调用
next将返回的元素的索引,如果列表迭代器位于列表末尾,则返回列表大小
-
previousIndex
int previousIndex()
返回后续调用previous()返回的元素的索引。 (如果列表迭代器位于列表的开头,则返回-1。)- 结果
-
后续调用
previous将返回的元素的索引,如果列表迭代器位于列表的开头,则返回-1
-
remove
void remove()
从列表中删除next()或previous()(可选操作)返回的最后一个元素。 此呼叫只能在每次呼叫next或previous拨打一次。 它可制成只有add(E)尚未到最后通话后称为next或previous。- Specified by:
-
remove在界面Iterator<E> - 异常
-
UnsupportedOperationException- 如果此列表迭代器不支持remove操作 -
IllegalStateException-如果没有next也不previous一直呼吁,或remove或add的最后一次通话后,一直呼吁next或previous
-
set
void set(E e)
用指定的元素替换next()或previous()返回的最后一个元素(可选操作)。 只有在最后一次调用next或previous后未调用remove()和add(E)时,才能进行此调用。- 参数
-
e- 用于替换next或previous返回的最后一个元素的元素 - 异常
-
UnsupportedOperationException- 如果此列表迭代器不支持set操作 -
ClassCastException- 如果指定元素的类阻止将其添加到此列表中 -
IllegalArgumentException- 如果指定元素的某些方面阻止将其添加到此列表中 -
IllegalStateException-如果没有next也不previous一直呼吁,或remove或add的最后一次通话后,一直呼吁next或previous
-
add
void add(E e)
将指定的元素插入列表(可选操作)。 该元素紧接在next()返回的元素之前插入(如果有),并且在previous()返回的元素之后插入 (如果有)。 (如果列表不包含任何元素,则新元素将成为列表中的唯一元素。)新元素在隐式游标之前插入:对next的后续调用不受影响,随后对previous调用将返回新元素。 (此调用将通过调用nextIndex或previousIndex返回的值增加previousIndex)- 参数
-
e- 要插入的元素 - 异常
-
UnsupportedOperationException- 如果此列表迭代器不支持add方法 -
ClassCastException- 如果指定元素的类阻止将其添加到此列表中 -
IllegalArgumentException- 如果此元素的某些方面阻止将其添加到此列表中
-
-