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

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/264512.html

(0)
上一篇 2022年6月7日
下一篇 2022年6月7日

相关推荐

发表回复

登录后才能评论