Diferencia entre enumeración e iterador

Diferencia entre enumeración e iterador
Diferencia entre enumeración e iterador

Video: Diferencia entre enumeración e iterador

Video: Diferencia entre enumeración e iterador
Video: Metáforas, analogías, alegorías: qué son, cómo las usamos y ejemplos. 2024, Noviembre
Anonim

Enumeración frente a iterador

Hay muchas estructuras de datos que actúan como colecciones en Java, como vectores, tablas hash y clases que implementan el marco de colecciones de Java (es decir, HashMap, HashSet, ArrayList, TreeSet, TreeMap, LinkedList, LinkedHashMap y LinkedHashSet). Existen numerosas formas de iterar a través de los elementos individuales de los objetos en Java. Java proporciona dos interfaces para facilitar esta tarea. La enumeración y el iterador son dos de las interfaces que se encuentran en el paquete java.util que brindan funcionalidad para enumerar a través de secuencias u objetos con un conjunto de elementos. El enumerador se introdujo en JDK 1.0 e Iterator, que se introdujo en JDK 1.2, prácticamente duplica la funcionalidad del Enumerador (dentro del Framework de colecciones).

¿Qué es la enumeración?

Enumeration es una interfaz pública en Java, introducida en JDK 1.0, que brinda la capacidad de enumerar a través de secuencias de elementos. Se encuentra en el paquete java.util. Cuando la interfaz de enumeración es implementada por un objeto, ese objeto puede generar una secuencia de elementos. La interfaz de enumeración tiene dos métodos. El método hasMoreElements() comprobará si esta enumeración contiene más elementos y nextElement() devuelve el siguiente elemento de la secuencia (si queda al menos uno más). En otras palabras, al llamar a nextElement() sucesivamente, el programador puede acceder a los elementos individuales de la serie. Por ejemplo, para imprimir todos los elementos en Vector v1 usando Enumerator, se puede usar el siguiente fragmento de código.

Enumeración e=v1.elements();

Mientras(e.tieneMásLementos()){

Sistema.out.println(e.nextElement());

}

Enumerator también se puede usar para definir el flujo de entrada a los objetos SequenceInputStream.

¿Qué es Iterador?

Iterator es una interfaz pública en el paquete Java.util, que permite iterar a través de elementos de los objetos de colecciones que implementan el marco de colecciones (como ArrayList, LinkedList, etc.). Esto se introdujo en JDK 1.2 y reemplazó al Enumerador dentro de Java Collections Framework. Iterator tiene tres métodos. El método hasNext() comprueba si quedan elementos en la colección y el método next() devuelve el siguiente elemento de la serie. El método remove() se puede usar para eliminar el elemento actual de la colección subyacente. Por ejemplo, para imprimir todos los elementos en Vector v1 usando Iterator, se puede usar el siguiente fragmento de código.

Iterador i=v1.elements();

Mientras(i.hasNext()){

Sistema.fuera.println(e.siguiente());

}

¿Cuál es la diferencia entre Enumeración e Iterador?

Aunque Enumeración e Iterador son dos de las interfaces que se encuentran en el paquete java.util, que permiten iterar/enumerar elementos de una serie, tienen sus diferencias. En realidad, Iterator, que se introdujo después de Enumeration, reemplaza a Enumeration dentro del marco de Java Collections. A diferencia de Enumeration, Iterator es a prueba de fallas. Esto significa que las modificaciones simultáneas (a la colección subyacente) no están permitidas cuando se usa Iterator. Esto es muy útil en entornos de subprocesos múltiples donde siempre existe el riesgo de modificaciones simultáneas. En el caso de una modificación simultánea, el objeto Iterator generará una ConcurrentModificationException. Iterator tiene nombres de métodos más cortos en comparación con Enumerator. Además, iterator tiene la funcionalidad adicional de eliminar elementos durante la iteración (lo que no es posible con Enumerator). Por lo tanto, si es necesario eliminar elementos de la colección, Iterator es la única opción que se puede considerar.

Recomendado: