public interface ListIterator<E> extends Iterator<E>{
boolean hasNext();
E next();
void remove();
// 以下为在 Iterator 接口的基础上新增的方法
boolean hasPrevious();
E previous();
int nextIndex();
int previousIndex();
void set(E e);
void add(E e);
}
ListIterator 允许我们从前往后和从后往前遍历列表,允许在迭代集合期间修改集合,允许获取迭代器的位置。
ListIterator 没有当前元素,它是通过游标来确定的元素位置:
如果一个集合有 n 个元素,那么存在 n+1 个游标。
使用方式和普通的 Iterator 大同小异,而且项目中很少使用到它,这里不再使用代码验证了。 总结
- ListIterator 没有 Map 类型的实现类,所以不能用于 Map 的迭代,但是 Iterator 可以。
- ListIterator 相对于 Iterator 可以从后向前遍历,注意游标位置就好。
- ListIterator 可以相比于 Iterator 多了一个在遍历的过程中 add/set 元素的功能。