Iterador : Es un iterador universal ya que podemos aplicarlo a cualquier objeto de Colección. Al usar Iterator, podemos realizar operaciones de lectura y eliminación. Es una versión mejorada de Enumeración con la funcionalidad adicional de poder remover un elemento.
El iterador debe usarse siempre que queramos enumerar elementos en todas las interfaces implementadas del marco de la colección como Set, List, Queue, Deque y también en todas las clases implementadas de la interfaz Map. Iterator es el único cursor disponible para todo el marco de la colección.
Sintaxis:
// Here "c" is any Collection object. itr is of // type Iterator interface and refers to "c" Iterator itr = c.iterator();
Enumeración : la enumeración (o enumeración) es un tipo de datos definido por el usuario. Se utiliza principalmente para asignar nombres a constantes integrales, los nombres hacen que un programa sea fácil de leer y mantener. En Java (desde 1.5), las enumeraciones se representan utilizando el tipo de datos enumerados. Las enumeraciones de Java son más potentes que las enumeraciones de C/C++. En Java, también podemos agregarle variables, métodos y constructores. El objetivo principal de la enumeración es definir nuestros propios tipos de datos (tipos de datos enumerados).
Sintaxis:
// A simple enum example where enum is declared // outside any class (Note enum keyword instead of // class keyword) enum Color { RED, GREEN, BLUE; }
Diferencia entre iterador y enumeración:
La funcionalidad de la enumeración y el iterador son las mismas. Al usar Enumeración, solo puede recorrer y buscar los objetos, mientras que al usar Iterator también podemos agregar y eliminar los objetos. Entonces, Iterator puede ser útil si desea
manipular la lista y Enumeration es para acceso de solo lectura.
iterador | Enumeración |
---|---|
Iterator es un cursor universal ya que es aplicable para todas las clases de colección. | La enumeración no es un cursor universal, ya que solo se aplica a las clases heredadas. |
Iterator tiene el método remove(). | La enumeración no tiene el método remove(). |
El iterador puede hacer modificaciones (por ejemplo, usando el método remove() elimina el elemento de la colección durante el recorrido). | La interfaz de enumeración actúa como una interfaz de solo lectura, no se pueden realizar modificaciones en la colección mientras se recorren los elementos de la colección. |
Iterator no es una interfaz heredada. El iterador se puede usar para atravesar HashMap, LinkedList, ArrayList, HashSet, TreeMap, TreeSet. | La enumeración es una interfaz heredada que se utiliza para atravesar Vector, Hashtable. |