2012-06-11 27 views
1

可能重複:
difference between Iterator and Listiterator?iterator和listIterator()有什麼區別?

最近,當我經過的javadoc goint,我發現在List接口兩種方法:迭代器()的ListIterator()。除了不同的返回類型,這兩種方法還有什麼區別? 下面是兩種方法的java文檔。

// List Iterators 
/** 
* Returns a list iterator over the elements in this list (in proper 
* sequence). 
* 
* @return a list iterator over the elements in this list (in proper 
*   sequence) 
*/ 
ListIterator<E> listIterator(); 

而且

/** 
* Returns an iterator over the elements in this list in proper sequence. 
* 
* @return an iterator over the elements in this list in proper sequence 
*/ 
Iterator<E> iterator(); 
+0

提前8分鐘提出了同樣的問題。 :P –

+1

你有沒有看過Javadoc的'Iterator'和'ListIterator'? –

+1

@PéterTörök實際上,ListIterator javadoc本身就會給你不同之處作爲它的一個子類型。 ;) –

回答

6

ListIterator是延伸Iterator一個子類。

A ListIterator允許在兩個方向上遍歷,而不僅僅是檢查是否有更多元素(hasNext()),並獲取下一個(next())。它保持一個光標位置並呼叫next()previous()將改變位置並返回相關值。 ListIterator還允許將條目添加(add(E e)),並將條目(set(E e))設置爲基礎列表(與允許刪除的迭代器不同)。

1

ListIterator

甲的ListIterator沒有當前元素;其遊標位置始終位於將調用previous()所返回的元素與調用next()所返回的元素之間。

1

ListIterator只是普通的Iterator的擴展,允許您在任一方向遍歷列表,在迭代過程中修改列表,並獲取列表中迭代器的當前位置。

4

使用ListIterator,可以在列表中向前和向後遍歷,而只能使用Iterator向前遍歷。另一方面,ListIterator僅用於列表,但迭代器用於映射,設置和列表。