codecamp

鸿蒙OS ListIterator

ListIterator

public interface ListIterator<E>
extends Iterator<E>

列表的迭代器,允许程序员在任一方向遍历列表,在迭代期间修改列表,并获取迭代器在列表中的当前位置。 ListIterator 没有当前元素; 它的光标位置始终位于调用 previous() 将返回的元素与调用 next() 将返回的元素之间。 长度为 n 的列表的迭代器有 n+1 个可能的光标位置,如下面的插入符号 (^) 所示:

                      Element(0)   Element(1)   Element(2)   ... Element(n-1)
 cursor positions:  ^            ^            ^            ^                  ^

请注意,remove() 和 set(java.lang.Object) 方法不是根据光标位置定义的; 它们被定义为对调用 next() 或 previous() 返回的最后一个元素进行操作。

此接口是 Java 集合框架的成员。

方法总结

修饰符和类型 方法 描述
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。)

指定者:

接口 IteratorE 中的 hasNext

返回:

如果在向前遍历列表时列表迭代器有更多元素,则为 true

next

E next()

返回列表中的下一个元素并前进光标位置。 可以重复调用此方法以遍历列表,或与调用 previous() 混合以来回移动。 (请注意,交替调用 next 和 previous 将重复返回相同的元素。)

指定者:

接口 IteratorE 中的下一个

返回:

列表中的下一个元素

Throws:

Throw名称 Throw描述
NoSuchElementException 如果迭代没有下一个元素

hasPrevious

boolean hasPrevious()

如果此列表迭代器在反向遍历列表时具有更多元素,则返回 true。 (换句话说,如果 previous() 将返回一个元素而不是抛出异常,则返回 true。)

返回:

如果在反向遍历列表时列表迭代器有更多元素,则返回 true

previous

E previous()

返回列表中的前一个元素并将光标位置向后移动。 可以重复调用此方法以向后迭代列表,或与调用 next() 混合以来回遍历。 (请注意,交替调用 next 和 previous 将重复返回相同的元素。)

返回:

列表中的前一个元素

Throws:

Throw名称 Throw描述
NoSuchElementException 如果迭代没有前一个元素

nextIndex

int nextIndex()

返回将由后续调用 next() 返回的元素的索引。 (如果列表迭代器位于列表末尾,则返回列表大小。)

返回:

后续调用 next 将返回的元素的索引,如果列表迭代器位于列表末尾,则为列表大小

previousIndex

int previousIndex()

返回将由后续调用 previous() 返回的元素的索引。 (如果列表迭代器位于列表的开头,则返回 -1。)

返回:

后续调用 previous 时将返回的元素的索引,如果列表迭代器位于列表的开头,则返回 -1

remove

void remove()

从列表中删除 next() 或 previous() 返回的最后一个元素(可选操作)。 每次调用下一个或上一个时,此调用只能进行一次。 只有在最后一次调用 next 或 previous 之后没有调用 add(E) 时,才能执行此操作。

指定者:

在接口 IteratorE 中删除

Throws:

Throw名称 Throw描述
UnsupportedOperationException 如果此列表迭代器不支持删除操作
IllegalStateException 如果 next 和 previous 都没有被调用,或者在最后一次调用 next 或 previous 之后没有调用 remove 或 add

set

void set(E e)

将 next() 或 previous() 返回的最后一个元素替换为指定元素(可选操作)。 只有在最后一次调用 next 或 previous 之后既没有调用 remove() 也没有调用 add(E) 时,才能进行此调用。

参数:

参数名称 参数描述
e 用于替换 next 或 previous 返回的最后一个元素的元素

Throws:

Throw名称 Throw描述
UnsupportedOperationException 如果此列表迭代器不支持 set 操作
ClassCastException 如果指定元素的类阻止它被添加到这个列表中
IllegalArgumentException 如果指定元素的某些方面阻止它被添加到此列表中
IllegalStateException 如果 next 和 previous 都没有被调用,或者在最后一次调用 next 或 previous 之后没有调用 remove 或 add

add

void add(E e)

将指定元素插入列表(可选操作)。 该元素被插入到 next() 将返回的元素(如果有)之前,以及在 previous() 将返回的元素(如果有)之后。 (如果列表不包含任何元素,则新元素将成为列表中的唯一元素。)新元素插入到隐式光标之前:对 next 的后续调用将不受影响,对 previous 的后续调用将返回新元素 . (此调用将调用 nextIndex 或 previousIndex 返回的值加一。)

参数:

参数名称 参数描述
e 要插入的元素

Throws:

Throw名称 Throw描述
UnsupportedOperationException 如果此列表迭代器不支持 add 方法
ClassCastException 如果指定元素的类阻止它被添加到这个列表中
IllegalArgumentException 如果此元素的某些方面阻止它被添加到此列表中
鸿蒙OS List
鸿蒙OS Map
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

鸿蒙OS 开发

鸿蒙OS 术语

鸿蒙OS Java API参考

鸿蒙OS ohos.aafwk.ability

鸿蒙OS ohos.aafwk.abilityjet.activedata

鸿蒙OS ohos.aafwk.content

鸿蒙OS java.lang

鸿蒙OS java.Util

鸿蒙OS java.Util class

鸿蒙OS ohos.data.dataability

鸿蒙OS ohos.data.dataability class

鸿蒙OS ohos.agp.components

鸿蒙OS ohos.agp.components interface

鸿蒙OS ohos.agp.components class

鸿蒙OS ohos.global.configuration

鸿蒙OS java.io

鸿蒙OS ohos.data.resultset

鸿蒙OS ohos.data.resultset interface

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }