为了方便的处理集合中的元素,Java中出现了一个对象,该对象提供了一些方法专门处理集合中的元素.例如删除和获取集合中的元素.该对象就叫做迭代器(Iterator).

对 Collection 进行迭代的类,称其为迭代器。还是面向对象的思想,专业对象做专业的事情,迭代器就是专门取出集合元素的对象。但是该对象比较特殊,不能直接创建对象(通过new),该对象是以内部类的形式存在于每个集合类的内部。

如何获取迭代器?Collection接口中定义了获取集合类迭代器的方法(iterator()),所以所有的Collection体系集合都可以获取自身的迭代器。

1.Iterable

正是由于每一个容器都有取出元素的功能。这些功能定义都一样,只不过实现的具体方式不同(因为每一个容器的数据结构不一样)所以对共性的取出功能进行了抽取,从而出现了Iterator接口。而每一个容器都在其内部对该接口进行了内部类的实现。也就是将取出方式的细节进行封装。

原文:https://blog.csdn.net/qq_33642117/article/details/52039691

什么是迭代器(Iterator)?相关推荐

  1. C++中的迭代器(STL迭代器)iterator

    1.Cpp中的迭代器 要访问顺序容器和关联容器中的元素,需要通过迭代器(iterator)进行.迭代器是一个变量,相当于容器和操纵容器的算法之间的中介.迭代器可以指向容器中的某个元素,通过迭代器就可以 ...

  2. c++迭代器iterator通用吗_「ES6基础」迭代器(iterator)

    迭代器(iterator)是一个结构化的模式,用于从源以一次一个的方式提取数据.迭代器的使用可以极大地简化数据操作,于是ES6也向JS中添加了这个迭代器特性.新的数组方法和新的集合类型(如Set集合与 ...

  3. 如何得到iterator的当前元素_Java中迭代器Iterator详解

    1.定义 Iterator的定义为:对Collection进行迭代的迭代器,Iterator取代了Java Collection Framework中的Enumeration.Iterator与Enu ...

  4. C++ - const 与 迭代器(iterator) 使用 详解

    const 与 迭代器(iterator) 使用 详解 本文地址: http://blog.csdn.net/caroline_wendy/article/details/16030561 迭代器(i ...

  5. java:迭代器Iterator

    迭代器Iterator是一个对象,它的工作是遍历并选择序列中的对象,它提供了一种访问一个容器(container)对象中的各个元素,而不必暴露该对象内部细节的方法. 通过容器的 iterator()方 ...

  6. Java迭代器Iterator接口

    迭代器 Iterator接口 迭代器的代码实现 增强for循环 Iterator接口 java.util.Iterator接口:(对集合进行遍历) 有两个常用方法 1.boolean hasNext( ...

  7. java for 迭代器_Java基础-迭代器Iterator与语法糖for-each

    迭代器Iterator与语法糖for-each 一.为什么需要迭代器 设计模式迭代器 迭代器作用于集合,是用来遍历集合元素的对象.迭代器不是Java独有的,大部分高级语言都提供了迭代器来遍历集合.实际 ...

  8. Python中生成器generator和迭代器Iterator的使用方法

    一.生成器 1. 生成器的定义 把所需要值得计算方法储存起来,不会先直接生成数值,而是等到什么时候使用什么时候生成,每次生成一个,减少计算机占用内存空间 2. 生成器的创建方式 第一种只要把一个列表生 ...

  9. java 迭代器的原理_Java集合框架迭代器Iterator实现原理解析

    使用循环遍历集合 普通for循环 for(int i=0;i<10;i++){} 增强for循环 for(String str:list){} 什么是迭代器Iterator Iterator是J ...

  10. STL源码剖析 迭代器iterator的概念 和 traits编程技法

    iterator模式定义如下:提供一种方法,使之能够依序巡访某个 聚合物(容器)所含的各个元素,而又无需暴露该聚合物的内部表述方式. STL的中心思想在于:将数据容器(containers)和算法(a ...

最新文章

  1. DotNetNuke(DNN)升级攻略(DNN 4.3.7至DNN 4.6.0)
  2. 梯度下降法原理及实现
  3. Java并发编程实战~CountDownLatch
  4. uml 类图_UML-类图
  5. matlab 刻度非均匀控制,MATLAB 出一张好看的图
  6. 内核并发控制---自旋锁(来自网易)
  7. Java中获取当前类名和方法名
  8. 如何解决Mac电脑键盘上的大写锁定键灯不亮?
  9. 四、六级考试的标准分计算方法-“710分转换表”
  10. 宏基(Acer)笔记本(5583)拆机清洗风扇
  11. 暑假学习 Python爬虫基础(4)
  12. 月嫂的薪资为啥这么HIGH!
  13. sklearn多分类任务自定义cv交叉验证scoring
  14. 22春天津大学《工程地质学》在线作业二
  15. 上班15年后,普通程序员能实现财富自由吗?
  16. 干货 | 万字长文详解携程酒店订单缓存 存储系统升级实践
  17. Ubuntu-Thinkpade14无线网卡驱动安装
  18. 【数字信号处理】离散信号与系统分析
  19. android edittext 把软键盘确认键改为搜索键
  20. Monkey测试问题及解决方法

热门文章

  1. html5学生大作业,帮同学做的大一大作业:《我的家乡—郑州》 - 梦涵的帅爸爸...
  2. matlab最基础教程(四):常用的系统自带函数,符号变量与字符串篇
  3. 大名鼎鼎的SEO,有哪些发展方向?
  4. 一条命令搞定黑苹果双系统时差
  5. Deskpool云教室(云课堂)系列化配置
  6. 笔记本电脑通过手机蓝牙上网
  7. 【白苹果系统镜像】macOS Big Sur 11.6.6正式版(20G608)镜像
  8. 安装java进度条不动了_提示安装过程出错怎么处理啊?安装offi – 手机爱问
  9. CF1379C Choosing flowers
  10. Android获取SD卡总容量,可用大小,机身内存总容量及可用大小的系统方法