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中提供的⼀种容器,可以⽤来存储多个数据. 集合与数组的区别: 数组的长度是固定的,集合的长度是可变的. 数组中存储的是同⼀类型的元素,可以存储基本 ...
最新文章
- python大数据搜索_python语言-用 Python 实现一个大数据搜索引擎
- 理解SetCapture、ReleaseCapture、GetCapture(控制了消息发往哪个窗口,是理解消息的关键)
- VMware克隆centos系统后不能识别eth0
- 使用JUnit对ADF应用程序进行单元测试
- html中 一条样式规则,css规则的基本格式是什么?
- NS2相关学习——完成一个新协议(3)
- settings sync 怎么用_用好这7个VS Code插件,前端编程效率蹭蹭涨
- paip.连接access2003数据库python3.3以及php5对比
- 地理高程数据SRTM3简介
- 删除cortana_如何从Windows 10任务栏中删除Cortana
- 系统设计之时间维度[数据仓库]
- 爱,是一个人成功的最大动力
- FastJson是如何导致App Crash的
- 烤仔TVのCCW丨存储押金代付
- 笔记记本显卡Radeon 680M、mx570和mx450差距 680M、mx570和mx450对比
- 线程安全问题及解决方法
- centOs7.6+Typecho+Bt面板搭建个人Blog
- WPF实现微信客户端界面布局
- APISpace 未来7天生活指数API接口 免费好用
- C语言程序100例之C#版-024