Métodos principales de Iterator en Java

Iterator en Java

Iterator en Java


En esta entrada vamos a ver el uso de los métodos principales de Iterator en Java, cómo se comporta y como utilizarlo para collections.

¿Qué es un Iterator en Java?

Un Iterator en Java es un objeto que puede ser usado para realizar un bucle en una colección, como puede ser un HashSet o un ArrayList. El objeto Iterator pertenece al paquete java.util.

Iterator fue introducido en Java 1.2 como sustitución de Enumerations.

¿Cómo obtener un Iterator de una Collection?

Para poder hacer uso de Iterator lo primero es obtener un elemento Iterator en Java, para ello lo obtenemos llamando al método Iterator(). Por ejemplo vamos a obtener un Iterator a partir de un List en Java.

List<String> elements = new ArrayList<>();
Iterator<String> it = elements.iterator();

Una vez tenemos creado nuestro objeto Iterator para poder trabajar con este objeto existen tres métodos principales:

  • hashNext(): Nos indica si queda algún elemento.
  • next(): Itera al siguiente elemento
  • remove(): Elimina el elemento actual

Método hashNext() en Iterator

El método hashNext() de un Iterator nos permite conocer si existen más elementos en la Collection.

while(it.hasNext()) {
  ......
  System.out.println(it.next());
}

next() en un Iterator

El método next() de un Iterator nos permite ir al siguiente elemento de la Collection.

while(it.hasNext()) {
  System.out.println(it.next());
}

Método remove() en un Iterator

Para eliminar el elemento actual en un Iterator hacemos uso del método remove().

while(it.hasNext()) {
      Integer i = it.next();
      if(i < 5) {
        it.remove();
      }
    }

Iterar en un Iterator en Lambda con forEachRemaining()

Con la llegada de los Lambda en Java 8 se introdujo una nueva funcionalidad para recorrer un Iterator, el método forEachRemaining.

iter.forEachRemaining(System.out::println);

Ventajas de utilizar Iterator

  • Sencillo y simple de usar, métodos muy intuitivos.
  • Lectura y eliminación.
  • Puede ser usado para cualquier Collection en Java.

Contras de usar Iterator

  • No es compatible con hacer CRUD.
  • Solo puedes ir en una dirección haciendo uso de next.
  • No puedes iterar en paralelo, únicamente de manera secuencial.
  • No es la mejor aproximación utilizarlo en volúmenes grandes de datos.

Resumen de métodos de un Iterator

MétodoTipo de RespuestaDescripción
hashNext()booleanSi existen más elemento devuelve true, en caso contrario false.
next()EDevuelve el siguiente elemento del Iterator. Devuelve NoSuchElementException si el iterator no tiene más elementos.
remove()voidElimina el elemento actual del Iterator. Devuelve ConcurrentModificationException si esta siendo modificado.
forEachRemaining()ERealiza un forEach de todo el iterator. Si se específica el orden son ejecutados por orden.
Devuelve NullPointerException si el Iterator es Null
Métodos de Iterator en Java

Conclusión de Métodos principales de Iterator en Java

En esta entrada hemos visto los métodos principales de Iterator en Java, así como su uso y ventajas y desventajas.

Si necesitas más información puedes escribirnos un comentario o un correo electrónico a refactorizando.web@gmail.com o también nos puedes contactar por nuestras redes sociales Facebook o twitter y te ayudaremos encantados!


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *