迭代器:它是一个通用迭代器,因为可以将它应用于任何 Collection 对象。通过使用迭代器,我们可以执行读取和删除操作。它是 Enumeration
的改进版本,具有元素可移除功能的附加功能。每当要枚举所有 Collection
框架实现的接口(如 Set
、List
、Queue
、Deque
)以及所有实现的 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 可用于 HashMap 、LinkedList 、ArrayList 、HashSet 、TreeMap 、TreeSet 的遍历。 |
Enumeration 是一个遗留接口,用于遍历 Vector 、Hashtable 。 |
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/264512.html