Java Iterator、Enumeration

2018-11-18  本文已影响0人  hei禹

一、概述

Enumeration和Iterator都在java.util包下,用于遍历Collection对象的元素

二、区别

1)简介

Iterator是JDK 1.2引入的,Enumeration是JDK 1.0引入的

2)remove()方法

这是两者之间最主要的差别,Enumeration只支持遍历,不支持修改(remove)

Iterator Enumeration
hasNext() hasMoreElements()
next() hasElement()
remove() /
3)老旧接口

Enumeration是老旧接口,仅用于遍历老旧类如Vector、HashTable、Stack;而Iterator更通用

4)Fail-Fast VS Fail-Safe
5)安全可靠性

由于Iterator本质上是Fail-Fast的,并且在迭代时不允许其他线程修改集合,因此它被认为比Enumeration更安全

6)命名

Iterator类名、函数名更简短

三、如何选择

根据Java API文档说明,始终应该优先使用Iterator

四、Fail-Fast的额外说明

五、参考资料

  1. Differences Between Enumeration Vs Iterator In Java
  2. Enumeration.java和Iterator.java
  3. Difference between Java Enumeration and Iterator
  4. Class ConcurrentModificationException
上一篇 下一篇

猜你喜欢

热点阅读