迭代器模式(Iterator Pattern)属于行为设计模式的一种,它提供了一种访问集合对象元素的方式,而又不暴露集合的内部结构。迭代器模式定义了一个迭代器接口,用来顺序访问集合对象中的元素,而不需要知道集合对象的底层表示。这样,用户代码可以一致地遍历不同类型的集合,同时集合的内部结构也可以自由地更改,而不会影响到客户端代码。
核心概念
-
迭代器(Iterator)接口:定义了遍历元素所需的方法,如
hasNext()
判断是否有下一个元素,next()
获取下一个元素等。 -
具体迭代器(Concrete Iterator):实现了迭代器接口,负责遍历具体集合的元素。
-
集合(Aggregate)接口:定义了创建迭代器对象的接口,如
createIterator()
方法。 -
具体集合(Concrete Aggregate):实现了集合接口,负责存储元素,并返回一个具体迭代器的实例,以便遍历集合内的元素。
Java 中的迭代器模式实现
在Java中,迭代器模式已经被内建为集合框架的一部分,java.util.Iterator
接口代表了迭代器,而大多数集合类(如 List
, Set
, Map
的键集或值集)都实现了 Iterable
接口,该接口有一个 iterator()