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

热门文章

  1. 关于 ubuntu 插入耳机没有声音(麦克风也无法使用)的解决办法
  2. SOME/IPSOME/IP-SD
  3. 如何卸载、删除Anaconda?
  4. Rotated FCOS
  5. python+selenium,详解selenium原理。
  6. git撤销单个文件的修改_git 撤销修改以及删除文件
  7. 计算机会计专用符号,代表会计的符号
  8. 把蒙娜丽莎搬到excel
  9. android开关不了机,电脑关不了机了怎么办
  10. 区块链python还是c_区块链要学什么编程语言?