迭代器模式(Iterator Pattern):统一访问集合元素的方式
迭代器模式是行为型设计模式的一种,核心思想是提供一种统一的方法顺序访问容器对象(如集合、数组)中的各个元素,而不暴露容器的内部结构。这种模式就像 “遥控器”—— 无论电视机的内部构造如何,用户只需通过遥控器的按键(迭代器方法)就能逐频道切换(遍历元素),无需了解电视的内部细节。
迭代器模式的核心结构

迭代器模式通过四个核心角色实现对容器元素的统一遍历,职责明确且解耦了容器与遍历逻辑:
迭代器接口(Iterator)
- 定义遍历容器元素的标准接口,通常包含以下方法:
hasNext():判断是否还有下一个元素。next():返回当前元素,并移动到下一个位置。- (可选)
remove():移除当前元素(视容器支持情况)。
- 示例:
java.util.Iterator(Java 集合框架的迭代器接口)。
具体迭代器(ConcreteIterator)
- 实现迭代器接口,封装具体的遍历逻辑,记录当前遍历位置,与特定容器绑定。
- 示例:
ArrayList的内部迭代器(遍历数组)、LinkedList的内部迭代器(遍历链表)。
容器接口(Collection/Aggregate)
- 定义容器的核心接口,声明创建迭代器的方法(
iterator()),是所有容器的抽象父类。 - 示例:
java.util.Collection(Java 集合的根接口)。
具体容器(ConcreteCollection)
- 实现容器接口,存储元素并提供创建对应迭代器的方法,负责管理元素的增删改查。
- 示例:
ArrayList(数组容器)、HashSet(哈希表容器)。
代码实现示例
以 “自定义列表容器” 为例,展示迭代器模式的实现:自定义MyList容器,通过迭代器遍历元素,不暴露内部存储结构(如数组)。



