2012-06-11 29 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仅用于列表,但迭代器用于映射,设置和列表。