其他分享
首页 > 其他分享> > (设计模式)迭代器 > 本篇文章由一文多发平台[ArtiPub](https://github.c

(设计模式)迭代器 > 本篇文章由一文多发平台[ArtiPub](https://github.c

作者:互联网

迭代器是用来遍历容器的工具,迭代器内部封装了容器遍历的细节。

因为容器可能比较多,而且结构也可能各不相同,例如有:数组、哈希表、链表、跳表、红黑树、多路树、图等等。因此,每种容器一般都会提供各自的迭代器,用于遍历容器里的数据。

每种容器都有自己的迭代器,但如果每种迭代器接口不统一,那么使用成本极高,因此每个容器的迭代器都必须统一规范。例如:JDK 的迭代器接口,主要定义三个方法,分别是 hasNext、next 和 remove。如下:

image

在遍历容器的数据时,只需要使用其迭代器的 hasNext、next 这两个方法即可,用 hasNext 判断容器是否有数据,next 获取容器的数据,直到容器的数据遍历完,所有容器都是这么操作。

模式分析:

1、统一容器遍历规范,遍历时只需要知道 “还有没有数据” 和 “下一个数据” 就行,极大简化遍历方式。

2、封装容器具体的遍历细节,不暴露容器的具体结构,符合迪米特原则。

标签:容器,遍历,hasNext,迭代,ArtiPub,next,github,设计模式,数据
来源: https://blog.51cto.com/u_15192237/2764171