- 类型参数:
E- 此list迭代器返回的元素类型
- 所有父级接口:
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将指定元素插入列表(可选操作)。booleanhasNext()如果此list迭代器在向前遍历列表时有更多元素,则返回true。boolean如果此list迭代器在反向遍历列表时有更多元素,则返回true。next()返回列表中的下一个元素并前进光标位置。int返回将由后续调用next()返回的元素的索引。previous()返回列表中的前一个元素并向后移动光标位置。int返回将由后续调用previous()返回的元素的索引。voidremove()从列表中删除next()或previous()返回的最后一个元素(可选操作)。void用指定的元素替换next()或previous()返回的最后一个元素(可选操作)。在接口 java.util.Iterator 中声明的方法
forEachRemaining
-
方法详情
-
hasNext
boolean hasNext() -
next
E next()- 指定者:
next在接口Iterator<E>中- 返回:
- 列表中的下一个元素
- 抛出:
NoSuchElementException- 如果迭代没有下一个元素
-
hasPrevious
boolean hasPrevious()- 返回:
true如果列表迭代器在反方向遍历列表时有更多的元素
-
previous
E previous()- 返回:
- 列表中的前一个元素
- 抛出:
NoSuchElementException- 如果迭代没有前一个元素
-
nextIndex
int nextIndex()返回将由后续调用next()返回的元素的索引。 (如果列表迭代器位于列表末尾,则返回列表大小。)- 返回:
-
后续调用
next将返回的元素的索引,如果列表迭代器位于列表末尾,则为列表大小
-
previousIndex
int previousIndex()返回将由后续调用previous()返回的元素的索引。 (如果列表迭代器位于列表的开头,则返回 -1。)- 返回:
-
后续调用
previous将返回的元素的索引,如果列表迭代器位于列表的开头,则为 -1
-
remove
void remove()从列表中删除next()或previous()返回的最后一个元素(可选操作)。每次调用next或previous只能调用一次。仅当在最后一次调用next或previous后未调用add(E)时才能进行。- 指定者:
remove在接口Iterator<E>中- 抛出:
UnsupportedOperationException- 如果此list迭代器不支持remove操作IllegalStateException- 如果next和previous都没有被调用,或者在最后一次调用next或previous之后调用了remove或add
-
set
用指定的元素替换next()或previous()返回的最后一个元素(可选操作)。仅当在最后一次调用next或previous之后既未调用remove()也未调用add(E)时,才能进行此调用。- 参数:
e- 用于替换next或previous返回的最后一个元素的元素- 抛出:
UnsupportedOperationException- 如果此list迭代器不支持set操作ClassCastException- 如果指定元素的类阻止它被添加到这个列表IllegalArgumentException- 如果指定元素的某些方面阻止它被添加到这个列表IllegalStateException- 如果next和previous都没有被调用,或者在最后一次调用next或previous之后调用了remove或add
-
add
将指定元素插入列表(可选操作)。该元素将紧接在next()将返回的元素之前插入(如果有),并在将由previous()返回的元素(如果有)之后插入。 (如果列表不包含任何元素,则新元素成为列表中的唯一元素。)新元素插入到隐式游标之前:对next的后续调用将不受影响,而对previous的后续调用将返回新元素. (此调用将调用nextIndex或previousIndex返回的值加一。)- 参数:
e- 要插入的元素- 抛出:
UnsupportedOperationException- 如果此list迭代器不支持add方法ClassCastException- 如果指定元素的类阻止它被添加到这个列表IllegalArgumentException- 如果这个元素的某些方面阻止它被添加到这个列表
-