Diferencia entre el Iterador y la Interfaz de Enumeración en Java

Iterador vs EnumeraciónLos tres cursores que se utilizan para acceder a los elementos de cualquier colección uno por uno son Enumeración, Iterador y ListIterador. Sin embargo, el Iterador y el Enumerador están diseñados para realizar el mismo trabajo. Sin embargo, son distintos entre sí en el sentido de que la Enumeración tiene acceso de solo lectura a los elementos de la colección. Por otro lado, Iterator puede leer y eliminar los elementos de la colección.

La diferencia importante entre el Iterador y la Enumeración es que la Enumeración no se puede aplicar a las clases de colección, solo se aplica a las clases heredadas. Por otro lado, el Iterador es aplicable a las clases de colección, por lo tanto, se lo denomina cursor universal. Aprendamos un poco más de diferencia entre el Iterador y la Enumeración con la ayuda de la tabla de comparación que se muestra a continuación.

Contenido: Iterador Vs Enumeración

  1. Tabla de comparación
  2. Definición
  3. Diferencias clave
  4. Conclusión

Tabla de comparación

Base de comparación Iterador Enumeración
El iterador básico es un cursor universal, ya que es aplicable a todas las clases de colección. La enumeración no es un cursor universal, ya que solo se aplica a clases heredadas.
Acceso Mediante el Iterador puede leer y eliminar los elementos de la colección. Con Enumeración solo se pueden leer los elementos de la colección.
Métodos public boolean hasnext();
objetos pública next();
public void remove();
public boolean hasMoreElements();
objeto público nextElement();
Limitación Iterador es un unidireccional de avance acceso cursor.
El iterador no puede reemplazar ningún elemento de la colección.
El iterador no puede agregar ningún elemento nuevo en la colección.
La enumeración es un cursor de acceso directo unidireccional.
Solo admite clases heredadas.
Enumeration solo tiene acceso de solo lectura a los elementos de una colección.
Superar Para superar las limitaciones de Iterador debe optar por ListIterator. Para superar las limitaciones de la enumeración, debe optar por el Iterador.

Definición de Interfaz Iterador

El iterador es una interfaz en el marco de la colección. Como el iterador es aplicable a todas las clases de colección, se denomina cursor universal. Es el cursor que se utiliza para acceder a los elementos de la colección uno por uno. Con el Iterador, puede recuperar los elementos de la colección y, si lo desea, también puede eliminar los elementos de la colección. El objeto del Iterador se puede crear como se indica a continuación.

Iterator itr = Collc.iterator();

La variable itr es un objeto de Iterador. Collc es cualquier objeto de colección que se va a ciclar o iterar utilizando el objeto (itr) del Iterador. El iterator () es el método utilizado para crear un objeto iterador. Hay tres métodos en el Iterador como se muestra a continuación.

public boolean hasnext();public Object next();public void remove();

El primer método hasnext () comprueba si la colección tiene elementos o no. Si la colección tiene los elementos, devolverá true else return false. El segundo método next() se utiliza para recuperar el siguiente elemento de la colección. El tercer método remove () se utiliza para eliminar los elementos de la colección.

El iterador puede viajar en una colección solo en la dirección de avance que no puede retroceder mientras viaja. El iterador puede eliminar el elemento de la colección, pero no tiene la capacidad de reemplazar ningún elemento existente con un elemento nuevo, ni puede agregar ningún elemento nuevo a la colección. Para superar estas limitaciones, puede optar por la interfaz ListIterator.

Definición de Interfaz de Enumeración

La enumeración es la interfaz aplicable a las clases heredadas y no se puede aplicar a ninguna clase de colección. Por lo tanto, no es un cursor universal. La enumeración recupera el elemento (objeto) de la colección uno por uno. El objeto Enumeración tiene acceso de solo lectura a los elementos de la colección. El objeto Enumeración no puede cambiar ningún elemento de la colección. Veamos cómo crear un objeto de enumeración, eche un vistazo.

Enumeration er = Vect.elements();

La variable er es un objeto de enumeración. El Vect es el objeto de la clase vectorial que debe ser atravesado por el objeto (er) de Enumeración. El método element () se utiliza para crear un objeto de enumeración. Solo hay dos métodos en la interfaz de enumeración, como se muestra a continuación.

public boolean hasMoreElements();public nextElement();

El primer método hasMoreElements () se utiliza para comprobar el estado de la colección si contiene los elementos o si está vacía. Si la colección tiene los elementos, el método hasMoreElements() devuelve true, de lo contrario devuelve false. El segundo método nextElement() se utiliza para recuperar los elementos de la colección uno por uno.

Cuando se completa el recorrido, el método nextElement () lanza NoSuchElementException. El objeto de enumeración viaja solo en la dirección de avance. No puede agregar, eliminar o reemplazar ningún elemento de la colección. Para superar estas limitaciones de la Enumeración, debe optar por el Iterador.

Diferencias clave entre el Iterador y la Enumeración en Java

  1. La principal diferencia entre el Iterador y la Enumeración es que el Iterador es un cursor universal, se puede usar para iterar cualquier objeto de colección. Por otro lado, la Enumeración se usa solo para atravesar objetos de clase heredada.
  2. El objeto Enumeración solo tiene acceso de solo lectura a los elementos de la colección. Sin embargo, el objeto del Iterador puede leer y eliminar los elementos de la colección.
  3. Hay dos métodos de iterador, uno para comprobar el estado de la colección y otro para recuperar los elementos de la colección. Además de los métodos de enumeración, el Iterador tiene un método más para eliminar los elementos de la colección.
  4. Las limitaciones de Enumeración son que es cursor unidireccional directo, tiene acceso de solo lectura y se puede aplicar a las clases de colección. Por otro lado, el Iterador no puede reemplazar ni agregar ningún elemento nuevo en la colección y, al igual que la Enumeración, su cursor unidireccional hacia adelante también.
  5. La limitación de Enumeración se resuelve por el Iterador y las limitaciones del Iterador se resuelven por el ListIterador.

Conclusión

Hoy en día, el cursor Iterador y ListItertaor se utilizan ya que son el cursor universal y son mucho más eficientes que la Enumeración.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.