Iterator 是 ListIterator 的超类。
以下是它们之间的区别:
- 随着
iterator你只能向前移动,但ListIterator你也可以在阅读元素时移动后退。
- 有了
ListIterator你可以在遍历的任何时候获取索引,这是iterators 做不到的。
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
}