logo

Iterador en Java

En Java, un Iterador es uno de los cursores de Java. Iterador de Java es una interfaz que se practica para iterar sobre una colección de componentes de objetos Java uno por uno. Es de uso gratuito en el lenguaje de programación Java desde el marco de la Colección Java 1.2. Pertenece al paquete java.util.

Aunque Java Iterator se introdujo en Java 1.2, todavía no es la herramienta más antigua disponible para recorrer los elementos del objeto Colección. El iterador más antiguo en el lenguaje de programación Java es el iterador anterior al enumerador. La interfaz Java Iterator sucede al iterador enumerador que se practicó al principio para recorrer algunas colecciones accesibles como ArrayLists.

El iterador de Java también se conoce como cursores universales de Java ya que es apropiado para todas las clases del marco de la Colección. El Java Iterator también ayuda en operaciones como LEER y ELIMINAR. Cuando comparamos la interfaz Java Iterator con la interfaz del iterador de enumeración, podemos decir que los nombres de los métodos disponibles en Java Iterator son más precisos y sencillos de usar.

Ventajas del iterador de Java

Iterator en Java se volvió muy frecuente debido a sus numerosas ventajas. Las ventajas de Java Iterator se detallan a continuación:

  • El usuario puede aplicar estos iteradores a cualquiera de las clases del marco de la Colección.
  • En Java Iterator, podemos utilizar operaciones de lectura y eliminación.
  • Si un usuario está trabajando con un bucle for, no puede modernizar (agregar/eliminar) la colección, mientras que, si usa el iterador de Java, simplemente puede actualizar la colección.
  • El iterador de Java se considera el cursor universal para la API de colección.
  • Los nombres de los métodos en Java Iterator son muy sencillos y muy sencillos de usar.

Desventajas del iterador de Java

A pesar de las numerosas ventajas, Java Iterator también tiene varias desventajas. Las desventajas del iterador de Java se detallan a continuación:

  • El iterador de Java solo conserva la iteración en dirección hacia adelante. En palabras simples, Java Iterator es un iterador unidireccional.
  • El iterador de Java no aprueba la sustitución ni la ampliación de un nuevo componente.
  • En las operaciones CRUD, el iterador de Java no contiene las distintas operaciones como CREAR y ACTUALIZAR.
  • En comparación con Spliterator, Java Iterator no admite elementos transversales en el patrón paralelo, lo que implica que Java Iterator solo admite iteración secuencial.
  • En comparación con Spliterator, Java Iterator no admite una ejecución más confiable para atravesar el volumen masivo de datos.

¿Cómo utilizar el iterador de Java?

Cuando un usuario necesita utilizar Java Iterator, es obligatorio que cree una instancia de la interfaz Iterator a partir de la colección de objetos que desea atravesar. Después de eso, el iterador recibido mantiene el rastro de los componentes de la colección subyacente para asegurarse de que el usuario recorrerá cada uno de los elementos de la colección de objetos.

Si el usuario modifica la colección subyacente mientras recorre un iterador que conduce a esa colección, entonces el iterador normalmente lo reconocerá y generará una excepción la próxima vez que el usuario intente obtener el siguiente componente del iterador.

Métodos de iterador de Java

La siguiente figura muestra perfectamente el diagrama de clases de la interfaz Java Iterator. Contiene un total de cuatro métodos que son:

  • tieneSiguiente()
  • próximo()
  • eliminar()
  • para cada resto()

El para cada resto() El método se agregó en Java 8. Analicemos cada método en detalle.

    booleano tieneSiguiente(): El método no acepta ningún parámetro. Devuelve verdadero si quedan más elementos en la iteración. Si no quedan más elementos, devolverá falso.
    Si no quedan más elementos en la iteración, entonces no es necesario llamar al método next(). En palabras simples, podemos decir que el método se utiliza para determinar si se debe llamar al método next() o no.mi siguiente():Es similar al método hasNext(). Tampoco acepta ningún parámetro. Devuelve E, es decir, el siguiente elemento del recorrido. Si a la iteración o colección de objetos no le quedan más elementos para iterar, entonces arroja NoSuchElementException.eliminación nula predeterminada():Este método tampoco requiere ningún parámetro. No hay ningún tipo de retorno de este método. La función principal de este método es eliminar el último elemento devuelto por el iterador que atraviesa la colección subyacente. El método remove () apenas se puede solicitar una vez por cada llamada al método siguiente (). Si el iterador no admite la operación de eliminación, genera la excepción UnSupportedOperationException. También arroja IllegalStateException si aún no se llama al siguiente método.anulación predeterminada para cada uno de los restantes (acción del consumidor):Es el único método de Java Iterator que toma un parámetro. Acepta la acción como parámetro. La acción no es más que aquello que hay que realizar. No hay ningún tipo de retorno del método. Este método realiza la operación particularizada en todos los componentes izquierdos de la colección hasta que se consumen todos los componentes o la acción genera una excepción. Las excepciones generadas por la acción se entregan a la persona que llama. Si la acción es nula, arroja una NullPointerException.

Ejemplo de iterador de Java

Ahora es el momento de ejecutar un programa Java para ilustrar las ventajas de la interfaz Java Iterator. El siguiente código produce una ArrayList de nombres de ciudades. Luego inicializamos un iterador aplicando el método iterador() del ArrayList. Después de eso, se recorre la lista para representar cada elemento.

JavaIteratorExample.java

 import java.io.*; import java.util.*; public class JavaIteratorExample { public static void main(String[] args) { ArrayList cityNames = new ArrayList(); cityNames.add('Delhi'); cityNames.add('Mumbai'); cityNames.add('Kolkata'); cityNames.add('Chandigarh'); cityNames.add('Noida'); // Iterator to iterate the cityNames Iterator iterator = cityNames.iterator(); System.out.println('CityNames elements : '); while (iterator.hasNext()) System.out.print(iterator.next() + ' '); System.out.println(); } } 

Producción:

 CityNames elements: Delhi Mumbai Kolkata Chandigarh Noida 

Puntos para recordar

  • Java Iterator es una interfaz agregada en el lenguaje de programación Java en el marco de la Colección Java 1.2. Pertenece al paquete java.util.
  • Es uno de los cursores de Java que se practican para atravesar los objetos del marco de la colección.
  • El iterador de Java se utiliza para iterar los componentes del objeto de colección uno por uno.
  • El iterador de Java también se conoce como cursor universal de Java, ya que es apropiado para todas las clases del marco de la Colección.
  • Java Iterator también admite operaciones como READ y REMOVE.
  • Los nombres de los métodos de la clase Iterator son muy simples y fáciles de usar en comparación con los nombres de los métodos de Enumeration Iterator.