public interface ListIterator<E>
系列表迭代器,允许程序员按任一方向遍历列表、迭代期间修改列表,并获得迭代器在列表中的当前位置。ListIterator 没有当前元素;它的光标位置 始终位于调用 previous() 所返回的元素和调用 next() 所返回的元素之间。长度为 n 的列表的迭代器有 n+1 个可能的指针位置,如下面的插入符举例说明:
Element(0) Element(1) Element(2) ... Element(n-1) cursor positions: ^ ^ ^ ^ ^
注意,remove()
和 set(Object)
方法不是 根据光标位置定义的;它们是根据对调用 next()
或 previous()
所返回的最后一个元素的操作定义的。
此接口是 Java Collections Framework 的成员。
Collection
,
List
,
Iterator
,
Enumeration
,
List.listIterator()
方法摘要 | |
---|---|
void |
add(E e) 将指定的元素插入列表(可选操作)。 |
boolean |
hasNext() 以正向遍历列表时,如果列表迭代器有多个元素,则返回 true(换句话说,如果 next 返回一个元素而不是抛出异常,则返回 true)。 |
boolean |
hasPrevious() 如果以逆向遍历列表,列表迭代器有多个元素,则返回 true。 |
E |
next() 返回列表中的下一个元素。 |
int |
nextIndex() 返回对 next 的后续调用所返回元素的索引。 |
E |
previous() 返回列表中的前一个元素。 |
int |
previousIndex() 返回对 previous 的后续调用所返回元素的索引。 |
void |
remove() 从列表中移除由 next 或 previous 返回的最后一个元素(可选操作)。 |
void |
set(E e) 用指定元素替换 next 或 previous 返回的最后一个元素(可选操作)。 |
方法详细信息 |
---|
boolean hasNext()
E next()
NoSuchElementException
- 如果没有可迭代的下一个元素。
boolean hasPrevious()
E previous()
NoSuchElementException
- 如果没有可迭代的上一个元素。
int nextIndex()
int previousIndex()
void remove()
UnsupportedOperationException
- 如果列表迭代器不支持
remove 操作。
IllegalStateException
- 既没有调用
next 也没有调用
previous,或者在最后一次调用
next 或
previous 后调用了
remove 或
add。
void set(E e)
e
- 用于替换
next 或
previous 返回的最后一个元素的元素。
UnsupportedOperationException
- 如果列表迭代器不支持
set 操作。
ClassCastException
- 如果指定元素的类不允许该元素添加到此列表。
IllegalArgumentException
- 如果指定元素的某个方面不允许该元素添加到此列表。
IllegalStateException
- 如果既没有调用
next 也没有调用
previous,或者在最后一次调用
next 或
previous 后调用了
remove 或
add。
void add(E e)
e
- 要插入的元素。
UnsupportedOperationException
- 如果列表迭代器不支持
add 操作。
ClassCastException
- 如果指定元素的类不允许该元素添加到此列表。
IllegalArgumentException
- 如果此元素的某个方面不允许该元素添加到此列表。