Java中迭代器和枚举的区别

Java中迭代器和枚举的区别

迭代器: 它是一个通用迭代器,因为可以将它应用于任何 Collection 对象。通过使用迭代器,我们可以执行读取和删除操作。它是 Enumeration 的改进版本,具有元素可移除功能的附加功能。每当要枚举所有 Collection 框架实现的接口(如 SetListQueueDeque )以及所有实现的 Map 接口类中的元素时,都必须使用迭代器。迭代器是整个集合框架唯一可用的游标。

语法:

// Here "c" is any Collection object. itr is of
// type Iterator interface and refers to "c"\nIterator itr = c.iterator();

枚举: 枚举(或enum)是用户定义的数据类型。它主要用于为整型常量分配名称,这些名称使程序易于阅读和维护。在 Java(从 1.5 开始)中,枚举使用枚举数据类型表示。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; 
}

迭代器和枚举的区别:

Enumeration 和 Iterator 的功能是相同的。使用枚举只能遍历和获取对象,而使用迭代器我们也可以添加和删除对象。因此,如果愿意,迭代器可能会很有用

操作列表和枚举是只读访问。

迭代器 枚举
Iterator 是一个通用游标,因为它适用于所有集合类。 枚举不是通用游标,因为它仅适用于遗留类。
迭代器有 remove() 方法。 枚举没有 remove() 方法。
迭代器可以进行修改(例如,使用 remove() 方法在遍历期间从集合中删除元素)。 枚举接口作为一个只读接口,在遍历Collection的元素时不能对Collection做任何修改。
迭代器不是遗留接口。 Iterator 可用于 HashMapLinkedListArrayListHashSetTreeMapTreeSet 的遍历。 Enumeration 是一个遗留接口,用于遍历 VectorHashtable

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程