当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Iterator和Enumeration的区别用法及代码示例


迭代器它是一个通用迭代器,因为我们可以将它应用于任何 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。

相关用法


注:本文由纯净天空筛选整理自argha_c14大神的英文原创作品 Difference between Iterator and Enumeration in Java with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。