Java集合系列(二)ListIterator

134 阅读1分钟
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 元素的功能。