Diferencia entre el iterador y la interfaz de enumeración en Java

Autor: Laura McKinney
Fecha De Creación: 2 Abril 2021
Fecha De Actualización: 10 Mayo 2024
Anonim
Diferencia entre el iterador y la interfaz de enumeración en Java - Tecnología
Diferencia entre el iterador y la interfaz de enumeración en Java - Tecnología

Contenido


Los tres cursores que se utilizan para acceder a los elementos de cualquier colección uno por uno son Enumeración, iterador y ListIterator. Sin embargo, Iterator y Enumerator están destinados a realizar el mismo trabajo. Aún así, son distintos entre sí en el sentido de que Enumeration 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 el Enumeración no se puede aplicar a las clases de recopilació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 conoce como un cursor universal. Aprendamos alguna diferencia más entre Iterator y Enumeration con la ayuda de la tabla de comparación que se muestra a continuación.

  1. Cuadro comparativo
  2. Definición
  3. Diferencias clave
  4. Conclusión

Cuadro comparativo

Bases para la comparaciónIterador Enumeración
BASICIterator 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 se aplica solo a las clases heredadas.
AccesoUsando Iterator puedes leer y eliminar los elementos de la colección.Usando Enumeration solo puedes leer los elementos de la colección.
Métodospublic boolean hasnext ();
objetos públicos next ();
vacío público eliminar ();
public boolean hasMoreElements ();
objeto público nextElement ();
LimitaciónIterator es un cursor de acceso directo unidireccional.
Iterator no puede reemplazar ningún elemento de la colección.
Iterator no puede agregar ningún elemento nuevo en la colección.
La enumeración es un cursor de acceso directo unidireccional.
La enumeración solo admite clases heredadas.
La enumeración solo tiene acceso de solo lectura a los elementos de una colección.
SuperarPara superar las limitaciones de Iterator, debe optar por ListIterator.Para superar las limitaciones de Enumeration debes optar por Iterator.


Definición de interfaz de iterador

Iterador es una interfaz en el marco de la colección. Como Iterator es aplicable a todas las clases de colección, se lo denomina cursor universal. Es el cursor utilizado para acceder a los elementos de la colección uno por uno. Con Iterator, puede recuperar los elementos de la colección y, si lo desea, también puede eliminar los elementos de la colección. El objeto de Iterator 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 debe ser ciclado o iterado usando el objeto (itr) del iterador. los iterador () 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 (); Objeto público next (); vacío público eliminar ();

El primer método hasnext () comprueba si la colección tiene elementos o no. Si la colección tiene los elementos, devolverá verdadero, de lo contrario devolverá falso. El segundo método siguiente() se usa para recuperar el siguiente elemento de la colección. El tercer método retirar() se usa para eliminar los elementos de la colección.


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

Definición de interfaz de enumeración

Enumeración es la interfaz aplicable a la legado clases, 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 de enumeración tiene acceso de solo lectura a los elementos de la colección. El objeto de enumeración no puede cambiar ningún elemento de la colección. Veamos cómo crear un objeto de enumeración, eche un vistazo.

Enumeración er = Vect.elements ();

La variable er Es un objeto de enumeración. los Vect es el objeto de la clase de vector que debe atravesar el objeto (er) de Enumeration. El método elemento() se usa 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 usa para verificar el estado de la colección, ya sea que tenga elementos o esté vacía. Si la colección tiene los elementos, el método hasMoreElements () devuelve verdadero o devuelve falso. 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 () arroja NoSuchElementException. El objeto Enumeration viaja solo en la dirección hacia adelante. No puede agregar, eliminar o reemplazar ningún elemento de la colección. Para superar estas limitaciones de la enumeración, debe optar por Iterator.

  1. La principal diferencia entre Iterator y Enumeration es que Iterator es un cursor universal, puede usarse 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 de enumeración solo tiene acceso de solo lectura a los elementos de la colección. Sin embargo, el objeto de Iterator puede leer y eliminar los elementos de la colección.
  3. Hay dos métodos de iterador: uno para verificar 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, Iterator tiene un método más para eliminar los elementos de la colección.
  4. Limitaciones de la enumeración es que es un cursor unidireccional hacia adelante, tiene acceso de solo lectura y se puede aplicar a las clases de colección. Por otro lado, Iterator no puede reemplazar o agregar ningún elemento nuevo en la colección y, al igual que Enumeration, también es un cursor unidireccional hacia adelante.
  5. La limitación de la enumeración es resuelta por Iterator y las limitaciones de Iterator son resueltas por ListIterator.

Conclusión:

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