java enumerator_Enumerator迭代器和Iterator迭代器区别
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迭代器区别相关推荐
- Java核心API -- 7(Iterator迭代器、Comparable、Comparator比较器)
1. Iterator迭代器 所有Collection的实现类都实现了iterator方法,该方法返回一个Iterator接口类型的对象,用于实现对集合元素迭代的便利.在java.util包下. 1) ...
- enumerator迭代器和Iterator迭代器浅述
怎么突然想起这个主题了呢?是在浏览关于HashMap和HashTable的相关性能的时候,了解到他们的迭代机制不同,就深入探讨一下.HashMap和HashTable 主要区别是:线程安全.速度.迭代 ...
- Java中 Iterable 和 Iterator 的区别
1.Iterable接口 Iterable接口 (java.lang.Iterable) 是Java集合的顶级接口之一.我们首先看下这这个接口在JDK中的定义: package java.lang; ...
- Java基础篇:Iterator迭代器
一.什么是Iterator: 迭代器(Iterator)是一个对象,它的工作是遍历并目标序列中的对象,它提供了一种访问一个容器(container)对象中的各个元素的方法,把访问逻辑从不同类型的集合类 ...
- 迭代器 (Iterator迭代器接口)
1.Iterator接口介绍 lterator对象称为迭代器(设计模式的一种),主要用于遍历 Collection 集合中的元素. java集合分为Collection(单列集合)和Map(双列集合) ...
- java iter是否存在_Java中ListIterator和Iterator的区别以及ListIterator的应用
Java中ListIterator和Iterator详解与辨析 在使用java集合的时候,都需要使用Iterator.但是java集合中还有一个迭代器ListIterator,在使用List.Arra ...
- 进阶04 4 Collection集合类+Iterator迭代器+增强for+泛型
文章目录 Collection集合 集合概述 java.util.Collection接口 Iterator迭代器 Iterator接口 Iterator接口的常用方法 说明 迭代器实现原理图: 增强 ...
- Java Enumeration接口与Iterator接口
一.Enumeration接口 Enumeration接口中定义了一些方法,通过这些方法可以枚举(一次获得一个)对象集合中的元素. 这种传统接口已被迭代器取代,虽然Enumeration 还未被遗弃, ...
- JAVA day15 Collection(集合)、Iterator迭代器、泛型<E>
1.Collection(集合) 集合:集合是java中提供的⼀种容器,可以⽤来存储多个数据. 集合与数组的区别: 数组的长度是固定的,集合的长度是可变的. 数组中存储的是同⼀类型的元素,可以存储基本 ...
最新文章
- 透过腾讯张潼离职事件,看AI研究院如何才算成功?
- ExtAspNet应用技巧(十九) - 日志管理
- DL之BN-Inception:BN-Inception算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
- python3连接oracle数据库真操蛋_为64位Windows7的Python3安装MySQLdb
- Pytorch损失函数losses简介
- 莫兰迪色rgb颜色表_企业风险评价,(SCL)安全检查表,Excel工作表
- linux 中如何查看块设备,在linux中,如何确定使用块设备的进程?
- 启动go服务_内网穿透工具 FRP公网服务端、内网客户端快速配置文件说明
- USACO Section2.2 Preface Numbering 解题报告 【icedream61】
- 【CometOJ】CometOJ#8 解题报告
- opengl在windows中使用最新的opengl
- 基于Citespace和vosviewer的文献信息可视化分析技术
- Linux学习手册大全
- 分享一下“rmvb转avi“的操作技巧,3步搞定
- 管理信息系统(MIS)概述
- Ubuntu 20.04 通过 docker 安装 微信 和 QQ、修改字体大小
- 学习 react-native-sqlite-storage 案例
- Win10安装Centos8 Stream
- 枕头的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- flutter 真机无法调试 sdk报错_中小团队的Flutter实践经验总结