Iterator 是 ListIterator 的超类。
以下是它们之间的区别:
- 随着
iterator
你只能向前移动,但ListIterator
你也可以在阅读元素时移动后退。
- 有了
ListIterator
你可以在遍历的任何时候获取索引,这是iterator
s 做不到的。
iterator
您可以仅检查下一个元素是否可用,但您listiterator
可以检查上一个和下一个元素。
- 随着
listiterator
您可以在任何时间点添加新元素,同时遍历。不可能iterator
。
- 使用
listiterator
时,您可以在遍历时修改元素,而iterator
.
迭代器外观:
public interface Iterator<E> {
boolean hasNext();
E next();
void remove(); //optional-->use only once with next(),
dont use it when u use for:each
}
ListIterator 的外观和感觉:
public interface ListIterator<E> extends Iterator<E> {
boolean hasNext();
E next();
boolean hasPrevious();
E previous();
int nextIndex();
int previousIndex();
void remove(); //optional
void set(E e); //optional
void add(E e); //optional
}