JavaTM 2 Platform
Standard Ed. 6

java.util
介面 ListIterator<E>

所有父級介面:
Iterator<E>

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(Object) 方法不是 根據鼠標位置定義的;它們是根據對調用 next()previous() 所返回的最後一個元素的操作定義的。

此介面是 Java Collections Framework 的成員。

從以下版本開始:
1.2
另請參見:
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()
          從列表中移除由 nextprevious 返回的最後一個元素(可選操作)。
 void set(E e)
          用指定元素替換 nextprevious 返回的最後一個元素(可選操作)。
 

方法詳細資訊

hasNext

boolean hasNext()
以正向遍歷列表時,如果列表迭代器有多個元素,則返回 true(換句話說,如果 next 返回一個元素而不是拋出異常,則返回 true)。

指定者:
介面 Iterator<E> 中的 hasNext
返回:
如果以正向遍歷列表,列表迭代器有多個元素,則返回 true

next

E next()
返回列表中的下一個元素。可以重複調用此方法來迭代此列表,或混合調用 previous 來前後移動(注意交替調用 nextprevious 將重複返回相同的元素)。

指定者:
介面 Iterator<E> 中的 next
返回:
列表中的下一個元素。
拋出:
NoSuchElementException - 如果沒有可迭代的下一個元素。

hasPrevious

boolean hasPrevious()
如果以逆向遍歷列表,列表迭代器有多個元素,則返回 true。(換句話說,如果 previous 返回一個元素而不是拋出異常,則返回 true)。

返回:
如果以逆向遍歷列表,列表迭代器有多個元素,則返回 true

previous

E previous()
返回列表中的前一個元素。可以重複調用此方法來迭代列表,或混合調用 next 來前後移動(注意交替調用 nextprevious 將重複返回相同的元素)。

返回:
列表中的上一個元素。
拋出:
NoSuchElementException - 如果沒有可迭代的上一個元素。

nextIndex

int nextIndex()
返回對 next 的後續調用所返回元素的索引。(如果列表迭代器在列表的結尾,則返回列表的大小)。

返回:
next 的後續調用所返回元素的索引,如果列表迭代器在列表的結尾,則返回列表大小。

previousIndex

int previousIndex()
返回對 previous 的後續調用所返回元素的索引。(如果列表迭代器在列表的開始,則返回 -1)。

返回:
previous 的後續調用所返回元素的索引,如果列表迭代器在列表的開始,則返回 -1。

remove

void remove()
從列表中移除由 nextprevious 返回的最後一個元素(可選操作)。對於每個 nextprevious 調用,只能執行一次此調用。只有在最後一次調用 nextprevious 之後,尚未調用 ListIterator.add 時才可以執行該調用。

指定者:
介面 Iterator<E> 中的 remove
拋出:
UnsupportedOperationException - 如果列表迭代器不支持 remove 操作。
IllegalStateException - 既沒有調用 next 也沒有調用 previous,或者在最後一次調用 nextprevious 後調用了 removeadd

set

void set(E e)
用指定元素替換 nextprevious 返回的最後一個元素(可選操作)。只有在最後一次調用 nextprevious 後既沒有調用 ListIterator.remove 也沒有調用 ListIterator.add 時才可以進行該調用。

參數:
e - 用於替換 nextprevious 返回的最後一個元素的元素。
拋出:
UnsupportedOperationException - 如果列表迭代器不支持 set 操作。
ClassCastException - 如果指定元素的類別不允許該元素添加到此列表。
IllegalArgumentException - 如果指定元素的某個方面不允許該元素添加到此列表。
IllegalStateException - 如果既沒有調用 next 也沒有調用 previous,或者在最後一次調用 nextprevious 後調用了 removeadd

add

void add(E e)
將指定的元素插入列表(可選操作)。該元素直接插入到 next 返回的下一個元素的前面(如果有),或者 previous 返回的下一個元素之後(如果有);如果列表沒有元素,那麼新元素就成為列表中的唯一元素。新元素被插入到隱式鼠標前:不影響對 next 的後續調用,並且對 previous 的後續調用會返回此新元素(此調用把調用 nextIndexpreviousIndex 所返回的值增加 1)。

參數:
e - 要插入的元素。
拋出:
UnsupportedOperationException - 如果列表迭代器不支持 add 操作。
ClassCastException - 如果指定元素的類別不允許該元素添加到此列表。
IllegalArgumentException - 如果此元素的某個方面不允許該元素添加到此列表。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only