Iterator
Collection中的迭代器
Collection 继承了 Iterable接口:

iterator()方法用于返回一个迭代器,供forEach循环。
ArrayList 的Iterable实现
以ArrayList为例,他的iterator方法为:

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

内部有一个指针
cursor,用于记录当前的迭代位置每迭代一次,
cursor就向后移动一位forEach循环将会使用该迭代器,如果发生并发修改,则会发生并发修改异常
List 的 ListIterator 迭代器

List 接口同样提供了两个返回迭代器方法,并返回ListIterator类型的迭代器。
为什么需要ListIterator迭代器?
主要是为了解决Iterator迭代器的并发修改异常的问题。
ArrayList的ListIterator实现

其中ListItr如下:

最后更新于
这有帮助吗?