定义
- 它提供一种方法访问容器对象中各个元素,而又不需要暴露容器对象内部细节
应用场景
- 访问集合对象而无需暴露内部实现时
- 为遍历不同集合对象提供统一访问接口时,比如jdk中基本所有集合都已经实现了迭代器,像平时访问这些集合对象使用for(E x:xList)就是使用的迭代器
类图
迭代器模式.png
优缺点
- 优点
- 为不同集合对象提供一致的遍历接口,方便访问
- 集合与访问元素解耦,迭代的变更,不会影响到集合
- 缺点
- 对于简单的集合,比如数组、有序列表等迭代器反而使之变得复杂,想想一个for(int i=0....)能搞定的事,多出了两个类。我们应尽量少写自己的迭代器,现在的集合迭代已基本能满足我们的需求