迭代器:它是一个通用迭代器,因为我们可以将它应用于任何 Collection 对象。通过使用Iterator,我们可以执行读取和删除操作。它是枚举的改进版本,具有元素的 remove-ability 附加函数。
每当我们想要枚举所有 Collection 框架实现的接口(如 Set、List、Queue、Deque)以及 Map 接口的所有实现类中的元素时,都必须使用迭代器。迭代器是整个集合框架唯一可用的游标。
用法:
// Here "c" is any Collection object. itr is of // type Iterator interface and refers to "c" Iterator itr = c.iterator();
枚举:枚举(或enum)是一种用户定义的数据类型。它主要用于为整型常量命名,这些名称使程序易于阅读和维护。在 Java(从 1.5 开始)中,枚举使用 enum 数据类型表示。 Java 枚举比 C/C++ 枚举更强大。在Java中,我们还可以向其中添加变量、方法和构造函数。枚举的主要目的是定义我们自己的数据类型(枚举数据类型)。
用法:
// A simple enum example where enum is declared // outside any class (Note enum keyword instead of // class keyword) enum Color { RED, GREEN, BLUE; }
迭代器和枚举的区别:
枚举和迭代器的函数是相同的。使用枚举只能遍历和获取对象,而使用迭代器我们还可以添加和删除对象。所以如果你愿意的话迭代器会很有用
操作列表,枚举用于只读访问。
迭代器 | 枚举 |
---|---|
迭代器是一个通用游标,因为它适用于所有集合类。 | 枚举不是通用游标,因为它仅适用于遗留类。 |
迭代器具有remove()方法。 | 枚举没有remove()方法。 |
迭代器可以进行修改(例如,使用 remove() 方法在遍历期间从集合中删除元素)。 | 枚举接口作为一种只读接口,在遍历Collection中的元素时不能对Collection进行任何修改。 |
迭代器不是遗留接口。迭代器可用于 HashMap、LinkedList、ArrayList、HashSet、TreeMap、TreeSet 的遍历。 | 枚举是一个遗留接口,用于遍历Vector、Hashtable。 |
相关用法
- Java Iterator和Spliterator的区别用法及代码示例
- Java Iterator转Spliterator用法及代码示例
- Java Iterator转Stream用法及代码示例
- Java Iterator转List用法及代码示例
- Java Iterator转Iterable用法及代码示例
- Java Iterator用法及代码示例
- Java Iterable forEach()用法及代码示例
- Java Iterable转Collection用法及代码示例
- Java Iterable转Stream用法及代码示例
- Java Iterable用法及代码示例
- Java Integer divideUnsigned()用法及代码示例
- Java Integer equals()用法及代码示例
- Java Integer getInteger()用法及代码示例
- Java Integer longValue()用法及代码示例
- Java Integer max()用法及代码示例
- Java Integer min()用法及代码示例
- Java Integer numberOfLeadingZeros()用法及代码示例
- Java Integer numberOfTrailingZeros()用法及代码示例
- Java Integer parseInt()用法及代码示例
- Java Integer parseUnsignedInt()用法及代码示例
- Java Integer remainderUnsigned()用法及代码示例
- Java Integer reverseBytes(int i)用法及代码示例
- Java Integer toBinaryString()用法及代码示例
- Java Integer toHexString()用法及代码示例
- Java Integer toUnsignedLong()用法及代码示例
注:本文由纯净天空筛选整理自argha_c14大神的英文原创作品 Difference between Iterator and Enumeration in Java with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。