-
- All Superinterfaces:
-
Iterator<E>
public interface ListIterator<E> extends Iterator<E>
用于允许程序员沿任一方向遍历列表的列表的迭代器,在迭代期间修改列表,并获取列表中迭代器的当前位置。 AListIterator
没有电流元素; 它的光标位置总是位于通过调用previous()
返回的元素和通过调用next()
返回的元素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()
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 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()
返回的最后一个元素。-
Methods inherited from interface java.util.Iterator
forEachRemaining
-
-
-
-
方法详细信息
-
hasNext
boolean hasNext()
如果此列表迭代器在向前方向遍历列表时具有更多元素,则返回true
。 (换句话说,如果true将返回一个元素而不是抛出异常,则返回true
)
-
next
E next()
- Specified by:
-
next
在接口Iterator<E>
- 结果
- 列表中的下一个元素
- 异常
-
NoSuchElementException
- 如果迭代没有下一个元素
-
hasPrevious
boolean hasPrevious()
如果此列表迭代器在相反方向遍历列表时具有更多元素,则返回true
。 (换句话说,如果true返回一个元素而不是抛出异常,则返回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
。- 参数
-
e
- 要插入的元素 - 异常
-
UnsupportedOperationException
- 如果此列表迭代器不支持add
方法 -
ClassCastException
- 如果指定元素的类阻止将其添加到此列表中 -
IllegalArgumentException
- 如果此元素的某些方面阻止将其添加到此列表
-
-