迭代器模式(Iterator Pattern)是一种行为型设计模式,它提供了一种方法顺序访问一个聚合对象中的元素,而不暴露其底层表示。迭代器模式定义了一种标准的方式,允许客户端代码迭代并访问聚合对象中的所有元素,同时保持聚合对象的封装性和灵活性。
迭代器模式的结构
迭代器模式通常包含以下几个角色:
- 聚合接口(Aggregate Interface):定义了创建迭代器对象的方法,例如
iterator()
。 - 具体聚合类(Concrete Aggregate):实现聚合接口,它包含数据结构(如数组、链表、树等)和相应的迭代器类。
- 迭代器接口(Iterator Interface):定义了迭代操作的方法,通常包括
hasNext()
(是否有下一个元素)、next()
(获取下一个元素)和remove()
(可选,移除当前元素)。 - 具体迭代器类(Concrete Iterator):实现迭代器接口,它维护一个状态,用于跟踪当前迭代到的元素,并提供遍历聚合对象的方法。
迭代器模式的实现方式
在Java中,迭代器模式可以通过以下方式实现:
-
使用Java内置的迭代器:Java集合框架(Java Collections Framework)提供了内置的迭代器,如
Iterator
和ListIterator
。这些迭代器可以用来遍历集合中的元素。List<String> list = new ArrayList<>(); list.add("Apple"); list.add("Banana"); list.add