服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|编程技术|正则表达式|C/C++|

服务器之家 - 编程语言 - JAVA教程 - 详谈Enumeration接口和Iterator接口的区别

详谈Enumeration接口和Iterator接口的区别

2020-12-10 14:14Java教程网 JAVA教程

下面小编就为大家带来一篇详谈Enumeration接口和Iterator接口的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

如下所示:

?
1
2
3
4
5
6
7
8
9
10
11
12
package java.util;
 
 
public interface Enumeration<E> {
 boolean hasMoreElements();
 E nextElement();
}
public interface Iterator<E> {
 boolean hasNext();
 E next();
 void remove();
}

(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事件。

iterator是快速失败的,当你在遍历的时候,如果另起一个线程来修改它(集合的内容)的结构,这时迭代器会立马感知到,引起快速失败,抛出ConcurrentModificationException异常。
所以说iterator 是安全的

以上这篇详谈Enumeration接口和Iterator接口的区别就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

延伸 · 阅读

精彩推荐
  • JAVA教程Java parseInt解释加方法示例

    Java parseInt解释加方法示例

    使用此方法得到的原始数据类型的一个特定的字符串。 parseXxx()是一个静态方法,可以有一个参数或两个 ...

    java教程网5072019-10-18
  • JAVA教程java实现动态代理示例分享

    java实现动态代理示例分享

    动态代理作为代理模式的一种扩展形式,广泛应用于框架(尤其是基于AOP的框架)的设计与开发,本文将通过实例来讲解Java动态代理的实现过程。 ...

    java教程网4002019-11-15
  • JAVA教程Java 获得文件的指纹

    Java 获得文件的指纹

    在文件上传到服务器的时候,我们希望能够获得文件的指纹以确定文件没有被篡改过。常用的算法最开始使用的是 MD5,随后随着技术的发展,MD5 算法已经...

    今日头条3072020-10-28
  • JAVA教程AspectJ的基本用法

    AspectJ的基本用法

    本文主要介绍了AspectJ的基本用法。具有很好的参考价值。下面跟着小编一起来看下吧...

    Vonnie_Jade2632020-09-07
  • JAVA教程java微信扫描公众号二维码实现登陆功能

    java微信扫描公众号二维码实现登陆功能

    这篇文章主要为大家详细介绍了Java微信扫描公众号二维码实现登陆功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    zhengshuo4942020-12-01
  • JAVA教程Springmvc数据回显实现原理实例解析

    Springmvc数据回显实现原理实例解析

    这篇文章主要介绍了Springmvc数据回显实现原理实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可...

    4502020-09-23
  • JAVA教程javaweb文件打包批量下载代码

    javaweb文件打包批量下载代码

    这篇文章主要为大家详细介绍了javaweb文件打包批量下载代码,批量下载未批改作业,感兴趣的小伙伴们可以参考一下 ...

    acmjk3352020-05-22
  • JAVA教程微信支付java版本之Native付款

    微信支付java版本之Native付款

    这篇文章主要为大家详细介绍了微信支付java版本之Native付款,感兴趣的小伙伴们可以参考一下 ...

    wangxuewei1112392020-06-02