Ir al contenido

Recorrer una lista con ListIterator

Un ListIterator es un iterador Java que nos permite recorrer una lista de elementos en varias direcciones, bien hacia delante o bien hacía atrás. Para recorrer una lista con ListIterator lo primero que tenemos que hacer es crear una lista. En este caso vamos a crear un ArrayList.

ArrayList<string> al = new ArrayList<string>();
// Añadir elementos a un ArrayList
al.add("Victor");
al.add("Luis");
al.add("Elena");

Lo siguiente para recorrer una lista con ListIterator será obtener el puntero al iterador, esto lo conseguimos mediante el método .listIterator(). El puntero se quedará sobre un elemento ListIterator.

ListIterator<string> it = al.listIterator();

Ahora que hemos obtenido el puntero podemos recorrer una lista con ListIterator desplazando el puntero hacia delante o moviendo el puntero hacía atrás. Esta segunda opción será muy útil para mostrar los elementos en orden inverso de la lista. Podemos recorrer una lista con ListIterator hacia delante que seguirá el mismo mecanismo que cuando explicábamos como iterar un ArrayList. De esta forma moveremos el iterador mediante el método .next() y controlaremos el final de la lista mediante el método .hasNext().

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

Pero podemos recorrer una lista con ListIterator en orden inverso. En este caso vamos a utilizar el método .previous().

while(it.hasPrevious())
System.out.println(it.previous());

Sabremos si hemos llegado al principio de la lista cuando el método .hasPrevious() nos devuelva false.

Foto de Víctor Cuervo

Víctor Cuervo

Programador, Arquitecto IT, álter ego de Línea de Código, amante de las tecnologías, generador de conocimiento y facilitador del aprendizaje.

Descarga el código de Recorrer una lista con ListIterator

Un ListIterator permite recorrer una lista hacia delante y hacia atrás, mostrando elementos en orden inverso.

Descargar código