Java技术——Iterator和Enumeration的不同
0. Iterator和Enumeration的不同
(1)两者的函数接口不同
Enumeration只有2个函数接口,通过Enumeration我们只能读取集合的数据,而不能对数据进行修改。 Iterator有3个函数接口。Iterator除了能读取集合的数据之外,也能对数据进行删除操作。尽管前者还没有被弃用但是已经被后者所代替了,Enumeration已经过时的,之所以没有被弃用是因为它仍被几种从以前版本遗留下来的类(例如Vector)所定义的方法中使用。
两者的方法总结如下,区别一目了然:
//Enumeration指定下面的两个方法:
//当仍有更多的元素可提取时返回true;当所有元素都被枚举了,则返回false
boolean hasMoreElements();
//将枚举中的下一个对象做为一个类属 Object的引用而返回
Object nextElement() ;
//Iterator接口中定义了三个方法:
//是否还有下一个元素
hasNext();
//返回下一个元素
next();
//删除当前元素
remove();
//需要注意的是,调用next()方法后才可以调用remove()方法
//而且每次调用next()后最多只能调用一次remove()方法,否则抛出IllegalStateException异常
(2)Iterator支持fail-fast机制,而Enumeration不支持
Enumeration 是JDK 1.0添加的接口。使用到它的函数包括Vector、Hashtable等类, Enumeration存在的目的就是为它们提供遍历接口,Enumeration本身并没有支持同步,而在Vector、Hashtable实现Enumeration时,添加了同步。
Iterator 是JDK 1.2才添加的接口,它也是为了HashMap、ArrayList等集合提供遍历接口。Iterator是支持fail-fast机制的。
fail-fast 机制是指Java集合(Collection)中的一种错误机制。当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事件。例如:当某一个线程A通过iterator去遍历某集合的过程中,若该集合的内容被其他线程所改变了;那么线程A访问集合时,就会抛出ConcurrentModificationException异常,产生fail-fast事件。
转载于:https://www.cnblogs.com/qitian1/p/6461477.html
Java技术——Iterator和Enumeration的不同相关推荐
- java迭代器cas,java提高篇(三十)-Iterator - Java 技术驿站-Java 技术驿站
迭代对于我们搞Java的来说绝对不陌生.我们常常使用JDK提供的迭代接口进行Java集合的迭代. Iterator iterator = list.iterator(); while(iterator ...
- java技术面试之面试题大全
转载自:http://blog.csdn.net/lijizhi19950123/article/details/77679489 Java 面试知识点总结 本篇文章会对面试中常遇到的Java技术点进 ...
- Java技术光明顶,这些阿里面试题你了解多少,你的功力有多深厚
Java技术光明顶,这些阿里面试题你了解多少,你的功力有多深厚 前言: 我又来了,今天还是给大家分享一些阿里的面试题,为什么最近总是给大家推荐面试题呢,因为希望在金九银十这个跳槽季大家都可以拿到自己心 ...
- java基础总结-java技术栈快速复习
java基础 java基础概念 java概述和语言背景 java语言是没有sun公司(Stanford University Network:斯坦福大学网络)在1995年推出的计算机语言 java之父 ...
- 1269道Java技术答疑,阿里技术专家帮你Java技术进阶
云栖社区邀请到6位Java技术专家帮开发者答疑解惑,其中精华的1269道问答已经整理出来,供大家学习! 如有Java相关问题,请向专家提问https://yq.aliyun.com/promotion ...
- java的 iterator方法_java iterator方法
展开全部 iterator方法是JDK提供的迭代32313133353236313431303231363533e4b893e5b19e31333337393536接口进行Java集合的迭代. Ite ...
- Java中Iterator类的详细介绍
迭代器模式:就是提供一种方法对一个容器对象中的各个元素进行访问,而又不暴露该对象容器的内部细节. 概述 Java集合框架的集合类,我们有时候称之为容器.容器的种类有很多种,比如ArrayList.Li ...
- java 办公,中文JAVA技术网
873人气指数 0PageRank 0百度权重 0AlexaRank 2013-01-01收录日期 2019-08-15更新日期 服务器IP:218.240.155.5 网站描述:中文JAVA技术网 ...
- java旅游网站毕业论文,基于JAVA技术的旅游网站的开发.doc
摘要: 这次毕设主要是为了实现基于JAVA技术的旅游网站的开发,方便人们近距离的出行游玩.网站的开发过程中用到了很多方法技术,最主要的是JAVA技术,用于编写后台的功能实现代码:框架采用的是Sprin ...
最新文章
- 【Socket网络编程】2.sockaddr 和 sockaddr_in
- clang编译c语言,clang没有编译c程序?
- 前端学习(3104):react-hello-虚拟dom和真实dom
- php node.js django,Vue.js和Django搭建前后端分离项目示例详解
- 一个很炫的图片/相册浏览控件(Flex实现)
- Oracle创建视图的一个问题
- [BJOI2019]奥术神杖(分数规划+AC自动机+DP)
- java dom4j 读取 xml_java使用dom4j读取xml示例
- [Ubuntu Error]无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
- JS调用安卓手机摄像头扫描二维码
- [免费专栏] Android安全之绕过SSL Pinning抓HTTPS数据
- 胡崧讲Dreamweaver视频教程
- LVS 就是这么简单(数字后端物理验证篇)
- jfinal,jxl导出excel遇到的异常
- iphone数据传输已取消怎么办_iPhone停用怎么办?如何解除iPhone已停用
- 阿里面试,问了我乐观锁、悲观锁、AQS、sync和Lock,这个回答让我拿了offer
- AD 原理图层次化画图
- MacOS装载APFS移动硬盘出现49180错误
- UVM通信篇之一:TLM通信概论
- MCE | HIV 衣壳蛋白有望成为 HIV 治疗新靶标
热门文章
- 端口映射问题:Bad Request This combination of host and port requires TLS.
- 大数据学习01——配置虚拟机节点相关网络
- 2022-2028年中国汽轮发电机行业市场深度分析及发展趋势分析报告
- 2022-2028年中国NFT行业市场研究及前瞻分析报告
- Redis学习之路(一)--下载安装redis
- 遇事不责怪别人,换位思考能成全更好的自己
- Linux下Flash-LED的处理
- 使用Auto TensorCore CodeGen优化Matmul
- Nucleus-SE迁移:未实现的设施和兼容性
- OpenCV读写视频文件解析(二)