实现一个迭代器模式 (Iterator)

· 约 3 分钟读完 · 第 125 / 125 章

推荐答案

本题详细解读

1. 迭代器模式简介

迭代器模式是一种行为设计模式,它提供了一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。迭代器模式通常用于遍历集合对象,如数组、链表、树等。

2. 代码结构

  • Iterator 类:这是迭代器的核心类,负责管理集合的遍历。它包含两个主要方法:

    • next():返回集合中的下一个元素,并将索引向前移动。
    • hasNext():检查是否还有更多的元素可以遍历。
  • collection:这是被遍历的集合,通常是一个数组或列表。

3. 代码解析

  • 构造函数:constructor(collection) 初始化迭代器,接受一个集合作为参数,并将索引 index 初始化为 0。
  • next() 方法:如果集合中还有元素(通过 hasNext() 检查),则返回当前索引位置的元素,并将索引加 1。如果没有更多元素,则返回 null。
  • hasNext() 方法:检查当前索引是否小于集合的长度,以确定是否还有更多元素可以遍历。

4. 使用示例

在示例中,我们创建了一个包含数字 1 到 5 的数组 collection,然后使用 Iterator 类遍历并打印每个元素。通过 while 循环和 hasNext() 方法,我们可以确保在遍历完所有元素后停止循环。

5. 适用场景

迭代器模式适用于以下场景:

  • 当你需要遍历一个复杂的集合结构,而不想暴露其内部实现细节时。
  • 当你需要支持多种遍历方式时(例如,正向遍历、反向遍历等)。
  • 当你希望提供一个统一的接口来遍历不同类型的集合时。

通过使用迭代器模式,你可以将遍历逻辑与集合的实现解耦,从而提高代码的可维护性和灵活性。