Enumerator迭代器和Iterator迭代器区别

Iterator也是一个接口,它的源码如下:package java.util;

public interface Iterator {

boolean hasNext();

E next();

void remove();

}

Enumeration是一个接口,它的源码如下:package java.util;

public interface Enumeration {

boolean hasMoreElements();

E nextElement();

}

首先,看源码了解到:

(01) 函数接口不同

Enumeration只有2个函数接口。通过Enumeration,我们只能读取集合的数据,而不能对数据进行修改。

Iterator只有3个函数接口。Iterator除了能读取集合的数据之外,也能数据进行删除操作。

(02) Iterator支持fail-fast机制,而Enumeration不支持。

Enumeration 是JDK 1.0添加的接口。使用到它的函数包括Vector、Hashtable等类,这些类都是JDK 1.0中加入的,Enumeration存在的目的就是为它们提供遍历接口。Enumeration本身并没有支持同步,而在Vector、Hashtable实现Enumeration时,添加了同步。

而Iterator 是JDK 1.2才添加的接口,它也是为了HashMap、ArrayList等集合提供遍历接口。Iterator是支持fail-fast机制的:当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事件。

Enumeration 实例Hashtable hashtable = new Hashtable();

hashtable.put("1", "111");

hashtable.put("2", "1211");

Enumeration elements = hashtable.elements();

while(elements.hasMoreElements()){

Object nextElement = elements.nextElement();

System.out.println(nextElement);

}

Iterator 实例

ArrayList arrayList = new ArrayList();arrayList.add("a");

arrayList.add("b");

ListIterator listIterator = arrayList.listIterator();

while (listIterator.hasNext()) {

System.out.println(listIterator.next());

listIterator.remove();

/* 这里调用的是listIterator的remove方法,该方法为空方法

ListIterator类继承自Iterator,我们也可以自定义Interatro子类,

重写remove方法,可以实现对集合的移除操作;*/

}

java enumerator_Enumerator迭代器和Iterator迭代器区别相关推荐

  1. Java核心API -- 7(Iterator迭代器、Comparable、Comparator比较器)

    1. Iterator迭代器 所有Collection的实现类都实现了iterator方法,该方法返回一个Iterator接口类型的对象,用于实现对集合元素迭代的便利.在java.util包下. 1) ...

  2. enumerator迭代器和Iterator迭代器浅述

    怎么突然想起这个主题了呢?是在浏览关于HashMap和HashTable的相关性能的时候,了解到他们的迭代机制不同,就深入探讨一下.HashMap和HashTable 主要区别是:线程安全.速度.迭代 ...

  3. Java中 Iterable 和 Iterator 的区别

    1.Iterable接口 Iterable接口 (java.lang.Iterable) 是Java集合的顶级接口之一.我们首先看下这这个接口在JDK中的定义: package java.lang; ...

  4. Java基础篇:Iterator迭代器

    一.什么是Iterator: 迭代器(Iterator)是一个对象,它的工作是遍历并目标序列中的对象,它提供了一种访问一个容器(container)对象中的各个元素的方法,把访问逻辑从不同类型的集合类 ...

  5. 迭代器 (Iterator迭代器接口)

    1.Iterator接口介绍 lterator对象称为迭代器(设计模式的一种),主要用于遍历 Collection 集合中的元素. java集合分为Collection(单列集合)和Map(双列集合) ...

  6. java iter是否存在_Java中ListIterator和Iterator的区别以及ListIterator的应用

    Java中ListIterator和Iterator详解与辨析 在使用java集合的时候,都需要使用Iterator.但是java集合中还有一个迭代器ListIterator,在使用List.Arra ...

  7. 进阶04 4 Collection集合类+Iterator迭代器+增强for+泛型

    文章目录 Collection集合 集合概述 java.util.Collection接口 Iterator迭代器 Iterator接口 Iterator接口的常用方法 说明 迭代器实现原理图: 增强 ...

  8. Java Enumeration接口与Iterator接口

    一.Enumeration接口 Enumeration接口中定义了一些方法,通过这些方法可以枚举(一次获得一个)对象集合中的元素. 这种传统接口已被迭代器取代,虽然Enumeration 还未被遗弃, ...

  9. JAVA day15 Collection(集合)、Iterator迭代器、泛型<E>

    1.Collection(集合) 集合:集合是java中提供的⼀种容器,可以⽤来存储多个数据. 集合与数组的区别: 数组的长度是固定的,集合的长度是可变的. 数组中存储的是同⼀类型的元素,可以存储基本 ...

最新文章

  1. 透过腾讯张潼离职事件,看AI研究院如何才算成功?
  2. ExtAspNet应用技巧(十九) - 日志管理
  3. DL之BN-Inception:BN-Inception算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  4. python3连接oracle数据库真操蛋_为64位Windows7的Python3安装MySQLdb
  5. Pytorch损失函数losses简介
  6. 莫兰迪色rgb颜色表_企业风险评价,(SCL)安全检查表,Excel工作表
  7. linux 中如何查看块设备,在linux中,如何确定使用块设备的进程?
  8. 启动go服务_内网穿透工具 FRP公网服务端、内网客户端快速配置文件说明
  9. USACO Section2.2 Preface Numbering 解题报告 【icedream61】
  10. 【CometOJ】CometOJ#8 解题报告
  11. opengl在windows中使用最新的opengl
  12. 基于Citespace和vosviewer的文献信息可视化分析技术
  13. Linux学习手册大全
  14. 分享一下“rmvb转avi“的操作技巧,3步搞定
  15. 管理信息系统(MIS)概述
  16. Ubuntu 20.04 通过 docker 安装 微信 和 QQ、修改字体大小
  17. 学习 react-native-sqlite-storage 案例
  18. Win10安装Centos8 Stream
  19. 枕头的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  20. flutter 真机无法调试 sdk报错_中小团队的Flutter实践经验总结

热门文章

  1. 帝国CMS网站管理系统安装方法图文教程
  2. 成都软件从业人员达20万人
  3. 【生活】订火车票的策略
  4. android ble和ios ble 对比,低功耗蓝牙的坑对比,低功耗蓝牙的总结
  5. dx 生成 DEX文件流程分析
  6. visio保存为高质量图片
  7. HASH和HMAC(8):HMAC算法原理
  8. 宜搭低代码与Faas构建数据看板
  9. NX/UG二次开发—CAM—设置平面铣程序的切削底面(Floor)
  10. 亲子交际必备使用 开心宝宝程序