(设计模式)迭代器

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

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

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

image

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

模式分析:

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

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

本篇文章由一文多发平台ArtiPub自动发布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值