Iterator

Collection中的迭代器

Collection 继承了 Iterable接口:

iterator()方法用于返回一个迭代器,供forEach循环。

ArrayList 的Iterable实现

ArrayList为例,他的iterator方法为:

其中,ItrArrayList的一个内部类,具体完成了迭代器的实现:

  1. 内部有一个指针cursor,用于记录当前的迭代位置

  2. 每迭代一次,cursor就向后移动一位

  3. forEach循环将会使用该迭代器,如果发生并发修改,则会发生并发修改异常

List 的 ListIterator 迭代器

List 接口同样提供了两个返回迭代器方法,并返回ListIterator类型的迭代器。

为什么需要ListIterator迭代器?

主要是为了解决Iterator迭代器的并发修改异常的问题。

ArrayList的ListIterator实现

其中ListItr如下:

最后更新于