-
- 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()
-
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 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()
返回的最后一个元素(可选操作)。-
声明方法的接口 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
- 如果此元素的某些方面阻止将其添加到此列表中
-
-