鴻蒙OS ListIterator

2022-06-25 16:05 更新

ListIterator

public interface ListIterator<E>
extends Iterator<E>

列表的迭代器,允許程序員在任一方向遍歷列表,在迭代期間修改列表,并獲取迭代器在列表中的當(dāng)前位置。 ListIterator 沒有當(dāng)前元素; 它的光標(biāo)位置始終位于調(diào)用 previous() 將返回的元素與調(diào)用 next() 將返回的元素之間。 長度為 n 的列表的迭代器有 n+1 個可能的光標(biāo)位置,如下面的插入符號 (^) 所示:

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

請注意,remove() 和 set(java.lang.Object) 方法不是根據(jù)光標(biāo)位置定義的; 它們被定義為對調(diào)用 next() 或 previous() 返回的最后一個元素進(jìn)行操作。

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

方法總結(jié)

修飾符和類型 方法 描述
void add(E e) 將指定元素插入列表(可選操作)。
boolean hasNext() 如果此列表迭代器在向前遍歷列表時具有更多元素,則返回 true。
boolean hasPrevious() 如果此列表迭代器在反向遍歷列表時具有更多元素,則返回 true。
E next() 返回列表中的下一個元素并前進(jìn)光標(biāo)位置。
int nextIndex() 返回將由后續(xù)調(diào)用 next() 返回的元素的索引。
E previous() 返回列表中的前一個元素并將光標(biāo)位置向后移動。
int previousIndex() 返回將由后續(xù)調(diào)用 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()

返回列表中的下一個元素并前進(jìn)光標(biāo)位置。 可以重復(fù)調(diào)用此方法以遍歷列表,或與調(diào)用 previous() 混合以來回移動。 (請注意,交替調(diào)用 next 和 previous 將重復(fù)返回相同的元素。)

指定者:

接口 IteratorE 中的下一個

返回:

列表中的下一個元素

Throws:

Throw名稱 Throw描述
NoSuchElementException 如果迭代沒有下一個元素

hasPrevious

boolean hasPrevious()

如果此列表迭代器在反向遍歷列表時具有更多元素,則返回 true。 (換句話說,如果 previous() 將返回一個元素而不是拋出異常,則返回 true。)

返回:

如果在反向遍歷列表時列表迭代器有更多元素,則返回 true

previous

E previous()

返回列表中的前一個元素并將光標(biāo)位置向后移動。 可以重復(fù)調(diào)用此方法以向后迭代列表,或與調(diào)用 next() 混合以來回遍歷。 (請注意,交替調(diào)用 next 和 previous 將重復(fù)返回相同的元素。)

返回:

列表中的前一個元素

Throws:

Throw名稱 Throw描述
NoSuchElementException 如果迭代沒有前一個元素

nextIndex

int nextIndex()

返回將由后續(xù)調(diào)用 next() 返回的元素的索引。 (如果列表迭代器位于列表末尾,則返回列表大小。)

返回:

后續(xù)調(diào)用 next 將返回的元素的索引,如果列表迭代器位于列表末尾,則為列表大小

previousIndex

int previousIndex()

返回將由后續(xù)調(diào)用 previous() 返回的元素的索引。 (如果列表迭代器位于列表的開頭,則返回 -1。)

返回:

后續(xù)調(diào)用 previous 時將返回的元素的索引,如果列表迭代器位于列表的開頭,則返回 -1

remove

void remove()

從列表中刪除 next() 或 previous() 返回的最后一個元素(可選操作)。 每次調(diào)用下一個或上一個時,此調(diào)用只能進(jìn)行一次。 只有在最后一次調(diào)用 next 或 previous 之后沒有調(diào)用 add(E) 時,才能執(zhí)行此操作。

指定者:

在接口 IteratorE 中刪除

Throws:

Throw名稱 Throw描述
UnsupportedOperationException 如果此列表迭代器不支持刪除操作
IllegalStateException 如果 next 和 previous 都沒有被調(diào)用,或者在最后一次調(diào)用 next 或 previous 之后沒有調(diào)用 remove 或 add

set

void set(E e)

將 next() 或 previous() 返回的最后一個元素替換為指定元素(可選操作)。 只有在最后一次調(diào)用 next 或 previous 之后既沒有調(diào)用 remove() 也沒有調(diào)用 add(E) 時,才能進(jìn)行此調(diào)用。

參數(shù):

參數(shù)名稱 參數(shù)描述
e 用于替換 next 或 previous 返回的最后一個元素的元素

Throws:

Throw名稱 Throw描述
UnsupportedOperationException 如果此列表迭代器不支持 set 操作
ClassCastException 如果指定元素的類阻止它被添加到這個列表中
IllegalArgumentException 如果指定元素的某些方面阻止它被添加到此列表中
IllegalStateException 如果 next 和 previous 都沒有被調(diào)用,或者在最后一次調(diào)用 next 或 previous 之后沒有調(diào)用 remove 或 add

add

void add(E e)

將指定元素插入列表(可選操作)。 該元素被插入到 next() 將返回的元素(如果有)之前,以及在 previous() 將返回的元素(如果有)之后。 (如果列表不包含任何元素,則新元素將成為列表中的唯一元素。)新元素插入到隱式光標(biāo)之前:對 next 的后續(xù)調(diào)用將不受影響,對 previous 的后續(xù)調(diào)用將返回新元素 . (此調(diào)用將調(diào)用 nextIndex 或 previousIndex 返回的值加一。)

參數(shù):

參數(shù)名稱 參數(shù)描述
e 要插入的元素

Throws:

Throw名稱 Throw描述
UnsupportedOperationException 如果此列表迭代器不支持 add 方法
ClassCastException 如果指定元素的類阻止它被添加到這個列表中
IllegalArgumentException 如果此元素的某些方面阻止它被添加到此列表中
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號