共 6 道题目
解析:List/Tree 只管存数据;Iterator 负责 hasNext/next,客户端不碰内部数组或指针。
解析:统一遍历接口才能在换成链表、树之后仍复用同一套业务代码。
解析:每个迭代器维护自己的游标,这样可同时存在多种遍历或多次遍历。
解析:多种遍历策略正是迭代器的扩展点,不必把算法写进聚合类。
解析:把遍历职责从集合类里拆出去,集合不会因新增遍历算法而膨胀。
解析:日常 for-each 就是迭代器,隐藏了 List/Map/自定义集合的内部结构。