一、定义
迭代器模式又叫游标模式,它提供一种按顺序访问集合/容器的方法,无需报漏内部集合表示。属于行为型结构模式
二、url图
上图包括4个角色:
- 抽象迭代器(Iterator):抽象迭代器负责定义访问和遍历元素的接口
- 具体迭代器(MyListIterator):提供具体的元素遍历行为
- 抽象容器(List):负责定义提供具体迭代器的接口
- 具体容器(MyList):创建具体迭代器
三、源码场景
JDK当中就提供Iterator
我们看具体的ArrayList 的实现
具体的集合当中实现了自己的迭代器。
四、优点和缺点
优点:
- 解耦:迭代器封装了具体的迭代算法,迭代算法的变化不会影响到集合对象的架构
缺点
对于比较简单的遍历(如有序的集合),使用迭代器便利比较麻烦。在平常中也很少使用,除非自己公司中有特别的数据结构,可能需要开发相应的迭代器。