iterator迭代器详解_迭代器是什么

iterator迭代器详解_迭代器是什么迭代器 Iterator动机模式定义实例结构要点总结笔记动机在软件构建过程中,集合对象内部结构常常变化各异.但对于这些集合对象.我们希望在不暴露其内部结构地同时.可以让外部客户代码透明地访问其中包含地元素;同时这种”透明遍历”也为”同一种算法在多种集合对象上进行操作”提供了可能.使用面向对象技术将这种便利机制抽象为”迭代对象”为”应对变化中地集合对象”提供了一种优雅地方式模式定义提供了一种方法顺序访问一个聚合对象中地各个元素,而又不暴露(稳定)该对象地内部表示.实例结构要点总结迭代抽象

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

动机

在软件构建过程中,集合对象内部结构常常变化各异.但对于这些集合对象.我们希望在不暴露其内部结构地同时.可以让外部客户代码透明地访问其中包含地元素;同时这种”透明遍历”也为”同一种算法在多种集合对象上进行操作”提供了可能.

使用面向对象技术将这种便利机制抽象为”迭代对象”为”应对变化中地集合对象”提供了一种优雅地方式

模式定义

提供了一种方法顺序访问一个聚合对象中地各个元素,而又不暴露(稳定)该对象地内部表示.

实例

结构

在这里插入图片描述

要点总结

  • 迭代抽象:访问一个聚合对象的内部不需要了解他的具体实现细节
  • 迭代多态:为遍历不同的集合结构提供一个统一的接口.从而支持同样的算法在不通的集合结构上进行操作
  • 迭代器的健壮性考虑:遍历的同时更改迭代器所在的集合结构,会导致问题

笔记

  • 虚函数也有成本
  • 模板也是一种多态技术 但是模板是编译时多态 编译器在编译的时候会辨别调用的那些代码
  • 由于时代变化 面向对象模板设计结构已经老了
  • 上述内容讲的是面向对象式的迭代器
  • C++98之后标准的迭代器式使用模板描述的
  • 其他语言好多有不支持编译时模板 所以好多语言java C#等都式用的面向对象迭代器
  • 思想都是通过迭代器来隔离算法和容器 但是实现的技术已经发生了变化
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168499.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2w元教学课程,免费分享,教你搞定selenium自动化框架封装!

    2w元教学课程,免费分享,教你搞定selenium自动化框架封装!

    2021年7月14日
    82
  • java中级面试题1

    java中级面试题11、threadlocal问题https://blog.csdn.net/tiwerbao/article/details/50827305ThreadLocal源码可以看出:1)      ThreadLocal赋初始值的时候,需要在线程运行中,即run()中,不能作为thread的属性,否则ThreadLocalMap会挂错线程;2)      使用ThreadLocal隔离的值不能是引用,否…

    2022年10月11日
    3
  • linux定时删除N天前的文件(文件夹)

    linux定时删除N天前的文件(文件夹)

    2022年2月19日
    23
  • 决策树原理及Python代码实现

    决策树原理及Python代码实现决策树其实就是按节点分类数据集的一种方法。在本文中,我将讨论数学上如何使用信息论划分数据集,并编写代码构建决策树。创建决策树进行分类的流程如下:(1)创建数据集(2)计算数据集的信息熵(3)遍历所有特征,选择信息熵最小的特征,即为最好的分类特征(4)根据上一步得到的分类特征分割数据集,并将该特征从列表中移除(5)执行递归函数,返回第三

    2025年10月7日
    3
  • cad怎么删除不需要的部分_cad怎样打印局部图

    cad怎么删除不需要的部分_cad怎样打印局部图1、输入cad修建命令tr,然后按两下回车(记得是两下哦)。2、此时用鼠标点击想要抄修剪的部分就可以把cad多余百的线删除掉了。3、此时会看到蓝色线和紫色线还是多余,我们度选择删除工具,cad删除

    2022年8月1日
    7
  • 两款实用的DDos攻击工具[通俗易懂]

    两款实用的DDos攻击工具[通俗易懂]两款实用的DDos攻击工具2018-02-22Network•Security865之前为了重现某个bug,需要对网络设备进行ddos攻击测试,同时也是对设备的网络攻击防护功能进行抗压测试。临阵磨枪,google了两款攻击工具,windows平台的hyenae,以及Linux平台的hping3,在此记录一下两者的用法。Hyenaehyenae是在Windows平台上非常好用的一…

    2022年7月27日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号