Iterador

De ChuWiki
Saltar a: navegación, buscar

Iterator en Java

Artículo original en Iterador en Java

Un Iterator o Iterador es un patrón de diseño que nos ofrece una interfaz estándar para recorrer una estructura de datos sin que nos tengamos que preocupar por la representación interna de los datos de dicha estructura.

Esta forma de recorrer estructuras de datos ofrece muchas ventajas entre las que podemos destacar que nuestro código no depende de la estructura de datos.

Por lo tanto la “estructura” puede ser un árbol binario o una lista doblemente enlazada ya que el iterador nos abstrae del modo de realizar el recorrido. De este modo podemos sustituir de manera sencilla estructuras de datos en nuestro código sin que se nos presenten problemas desagradables.

Este patrón lo podemos sustituir por un bucle for, que haría básicamente lo mismo, pero la velocidad en la búsqueda es superior en el patrón iterator con respecto al bucle for.

En Java tenemos reflejado el patrón Iterator en la clase java.util.Iterator que es ampliamente utilizada en las conocidas Collections.

Por ejemplo, recorrer un array de empleados:

List empleados = new ArrayList();
//rellenar el array
Iterator it = empleados.iterator();
while (it.hasNext())
{
   Empleado empleado = (Empleado)it.next();
   //ya tenemos un objeto de tipo empleado
}

Para la misma estructura el bucle for sería

for (int i = 0; i < empleados.size(); i++) 
{
   empleado = empleados.get(i);
   //hacer otras cosas
}