首页 > 其他分享 >20230426 20. 迭代器模式

20230426 20. 迭代器模式

时间:2023-06-19 09:55:56浏览次数:52  
标签:20230426 20 迭代 Iterator 模式 遍历 集合 Java

介绍

迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示

当你需要访问一个聚集对象,而且不管这些对象是什么都需要遍历的时候,你就应该考虑用迭代器模式

你需要对聚集有多种方式遍历时,可以考虑用迭代器模式。

为遍历不同的聚集结构提供如开始、下一个、是否结束、当前哪一项等统一的接口

当你需要对聚集有多种方式遍历时,可以考虑用迭代器模式

不过现今来看迭代器模式实用价值远不如学习价值大了,Martin Flower甚至在自己的网站上提出撤销此模式。因为现在高级编程语言如C#、Java等本身已经把这个模式做在语言中了

研究历史是为了更好地迎接未来。

迭代器模式

Java.util.Iterator 支持对集合的简单迭代接口,Java.util.ListIterator 支持对集合的任意方向上迭代接口

foreach就是实现Iterator来实际循环遍历呀

迭代器(Iterator)模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以做到不暴露集合的内部结构,又可以让外部代码透明地访问集合内部的数据。迭代器模式在访问数组、集合、列表等数据时,尤其是数据库数据操作时,是非常广泛的应用,但由于它太普遍了,所以各种高级语言都对它进行了封装,所以反而给人感觉此模式本身不太常用了。

标签:20230426,20,迭代,Iterator,模式,遍历,集合,Java
From: https://www.cnblogs.com/huangwenjie/p/17490374.html

相关文章

  • 20230418 0. 面向对象基础
    面向对象的三大特性:封装、继承、多态面向对象的好处:可维护、可扩展、可复用、灵活性好封装每个对象都包含它能进行操作所需要的所有信息,这个特性称为封装,因此对象不必依赖其他对象来完成自己的操作。封装有很多好处:第一,良好的封装能够减少耦合第二,类内部的实现可以自由地修......
  • 20230418 0.1. UML
    UML这一节非常帮!!!1.11UML类图几种关系以及代码示例继承classBirdextendsAnimal{}实现classWideGooseimplementsIFly{}关联Association企鹅需要'知道'气候的变化,需要'了解'气候规律。当一个类'知道'另一个类时,可以用关联(association)。classPenguinex......
  • Android - 无法使用任何临时 SqlClient 版本(v2.1.4、v4.1.0、v5Preview)连接到 SQL Ser
    Aconnectionwassuccessfullyestablishedwiththeserver,butthenanerroroccurredduringthepre-loginhandshake.设法用证书和IP地址解决它。使用powershell为您的IP地址创建证书:New-SelfSignedCertificate-certstorelocationcert:\localmachine\my-dns......
  • P2050 [NOI2012] 美食节
    luoguP2050[NOI2012]美食节题意CZ市为了欢迎全国各地的同学,特地举办了一场盛大的美食节。作为一个喜欢尝鲜的美食客,小M自然不愿意错过这场盛宴。他很快就尝遍了美食节所有的美食。然而,尝鲜的欲望是难以满足的。尽管所有的菜品都很可口,厨师做菜的速度也很快,小M仍然觉得......
  • 2020羊城杯easyre
    2020羊城杯easyre无壳64位程序GCC编译回显如下所示:放IDA中继续分析:int__cdeclmain(intargc,constchar**argv,constchar**envp){intv3;//eaxintv4;//eaxintv5;//eaxcharStr[48];//[rsp+20h][rbp-60h]BYREFcharStr1[64];//[rsp......
  • 要禁用 Windows Server 2022 2025时自动打开服务器管理器,可以通过以下批处理命令实现
    要禁用WindowsServer20222025时自动打开服务器管理器,可以通过以下批处理命令实现:首先打开记事本,输入以下命令:@echooffregadd"HKLM\Software\Microsoft\ServerManager"/vDoNotOpenServerManagerAtLogon/tREG_DWORD/d1/f保存文件,将文件名后缀改为.bat。......
  • 2023.6.18拷逝
    T1如图,从\(x_1\)能且只能走到\(x_1+2,x_1+4,x_1+6...\)设\(f[x]\)表示从\(x_1\)走到\(x\)的方案数,那么如果\(x-x_1\)是偶数,那么\(f[x]=f[x-2]+f[x-4]+...+f[x_1]\),否则\(f[x]=0\)。初始值:\(f[x_1]=1\)。考虑\(f[x]\)的前几项。\(f[x_1]=1,f[x_1+2]=1,f[x_......
  • 给Nexus6p刷入lineage14.1(android 7.1)和 nethunter 2019.3
    本文依据kali教程编写https://build.nethunter.com/contributors/re4son/angler/INSTALLATION.txt写在前面的话你可能很奇怪,为什么有kali2020.3不用要刷入2019.3版本的。其实目的是使用安卓7,因为高版本安卓对某些软件的兼容性太差,刷入2019载手动升级到2020.3.Andrax在安卓7、9......
  • 会声会影2023中文完整旗舰版配置最低要求及安装激活教程
    本文参考于:https://blog.csdn.net/weixin_55412152/article/details/131274698会声会影2023完整旗舰版大师套装是功能非常强大的视频编辑软件,非常专业的使用效果,会声会影2023中文版可以针对剪辑电影进行使用,非常强大的色彩校正方式,无论什么光线下进行拍摄,都可以通过后期进行调整,并......
  • 【openeuler】Yocto &embedded sig联合例会 (2022-11-03)
                        ......