zoukankan      html  css  js  c++  java
  • Java设计模式(18)——行为模式之迭代子模式(Iterator)

    一、概述

      概念

      

      UML简图

      

      

      // Aggregate:聚集(集合)

      角色

      抽象迭代子:定义遍历元素所需要的接口

      具体迭代子:实现抽象迭代子接口,保持游标

      聚集/具体聚集:定义/实现创建迭代子对象的接口(返回迭代子iterator)

      客户端:持有聚集及其迭代子的引用

      使用场景

      也即是我们所熟知的集合中的Iterator的迭代器了,假设我们没有迭代模式,那么我们可以通过for循环加索引实现ArrayList的遍历,那LinkedList呢?

    对的,需要使用链表的形式:通过while加上链表的判断来遍历。迭代子模式便是将这个遍历的逻辑从中抽象出来,方便了我们的遍历,也实现了透明化

    的遍历(客户端无需知道集合的内部结构)。

     二、实践

      这里就暂时不展开示例了,可以参考集合章节以及集合相关的源码进行参阅。

      这里我们需要注意的地方就是游标的相关(为何迭代器遍历可以安全的增加与删除?这里的问题就是游标的问题)

      

  • 相关阅读:
    蓝桥杯_基础_杨辉三角
    蓝桥杯_基础_数组特征
    蓝桥杯_基础_美丽的图形
    脉象
    词根汇总
    蓝桥杯 入门训练 Fibonacci数列 解析
    制作tomcat重启.bat文件
    day23(023-递归练习)
    day27(027-反射&JDK新特性)
    day25(025-多线程(下)&GUI)
  • 原文地址:https://www.cnblogs.com/jiangbei/p/7763708.html
Copyright © 2011-2022 走看看