Iterator
Collection中的迭代器
Collection
继承了 Iterable
接口:
iterator()
方法用于返回一个迭代器,供forEach
循环。
ArrayList 的Iterable实现
以ArrayList
为例,他的iterator
方法为:
其中,Itr
是ArrayList
的一个内部类,具体完成了迭代器的实现:
内部有一个指针
cursor
,用于记录当前的迭代位置每迭代一次,
cursor
就向后移动一位forEach循环将会使用该迭代器,如果发生并发修改,则会发生并发修改异常
List 的 ListIterator 迭代器
List 接口同样提供了两个返回迭代器方法,并返回ListIterator
类型的迭代器。
为什么需要ListIterator迭代器?
主要是为了解决Iterator迭代器的并发修改异常的问题。
ArrayList的ListIterator实现
其中ListItr
如下:
最后更新于