Iterator :它是一个通用迭代器,因为我们可以将它应用于任何 Collection 对象。通过使用 Iterator,我们可以执行读取和删除操作。它是 Enumeration 的改进版本,具有元素的可移除能力的附加功能。
每当我们想要枚举所有 Collection 框架实现的接口(如 Set、List、Queue、Deque)以及 Map 接口的所有实现类中的元素时,都必须使用迭代器。 Iterator 是唯一可用于整个集合框架的游标。
句法:
// Here "c" is any Collection object. itr is of
// type Iterator interface and refers to "c"
Iterator itr = c.iterator();
枚举:枚举(或枚举)是用户定义的数据类型。它主要用于为整型常量赋值,这些名称使程序易于阅读和维护。在Java (从 1.5 开始)中,枚举使用 enum 数据类型表示。 Java枚举比 C/C++ 枚举更强大。在Java,我们还可以向其添加变量、方法和构造函数。枚举的主要目的是定义我们自己的数据类型(Enumerated Data Types)。
句法:
// A simple enum example where enum is declared
// outside any class (Note enum keyword instead of
// class keyword)
enum Color
{
RED, GREEN, BLUE;
}
迭代器和枚举的区别:
枚举和迭代器的功能是相同的。使用枚举只能遍历和获取对象,而使用迭代器我们还可以添加和删除对象。所以如果你愿意,迭代器可能很有用
操作列表,枚举用于只读访问。
Iterator | Enumeration |
---|---|
Iterator is a universal cursor as it is applicable for all the collection classes. | Enumeration is not a universal cursor as it applies only to legacy classes. |
Iterator has the remove() method. | Enumeration does not have the remove() method. |
Iterator can do modifications (e.g using remove() method it removes the element from the Collection during traversal). | Enumeration interface acts as a read only interface, one can not do any modifications to Collection while traversing the elements of the Collection. |
Iterator is not a legacy interface. Iterator can be used for the traversal of HashMap, LinkedList, ArrayList, HashSet, TreeMap, TreeSet . | Enumeration is a legacy interface which is used for traversing Vector, Hashtable. |