一、迭代器模式介绍
迭代器模式(Iterator Design Pattern)属于行为型模式,用于遍历容器中的属性对象。
加上迭代器,遍历元素的方式一共有三种,如下代码:
分别是:计数器遍历,迭代器遍历和foreach遍历。
迭代器是其中一种遍历方式(foreach 底层也是迭代器)
二、迭代模式模板
2.1、接口定义
2.1.1、迭代器接口
定义迭代器接口 Iterator<E>
,代码如下:
2.1.2、标识容器接口具有迭代器功能接口定义
定义接口 Iterable<E>
用以标识容器接口具有迭代器功能,并定义接口用以返回迭代器实现,代码定义如下:
2.1.3、集合 List
接口定义
定义集合接口 List<E>
,同时继承 Iterable<E>
接口,表示集合具有可迭代能力。
代码实现如下:
2.2、迭代器实现 ArrayListIterator
实现迭代器接口 Iterator
,实现 ArrayList 集合实现的专属迭代器 ArrayListIterator
,代码实现如下:
如上述代码所示,迭代器进行迭代,本身就是计数器迭代。
2.3、容器实现 ArrayList
实现 List<E>
接口,实现容器实现 ArrayList
,代码如下:
代码重点:
Object[] elementData
:真实数据存储位置iterator()
:获取迭代器的方法定义add()
:添加元素
2.4、使用案例
ArrayList
在初始化数据后,数据会存储在数组中,迭代器的遍历,就是通过遍历数组实现的。
【公众号】花好夜猿