En el último tutorial, discutimos Iterator en Java mediante el cual podemos recorrer una lista o avanzar. Aquí discutiremos ListIterator, que nos permite recorrer la lista en ambas direcciones (hacia adelante y hacia atrás).
Ejemplo de ListIterator
En este ejemplo, atravesamos una ArrayList en ambas direcciones.
import java.util.ArrayList; import java.util.List; import java.util.ListIterator; public class ListIteratorExample { public static void main(String a[]){ ListIterator<String> litr = null; List<String> names = new ArrayList<String>(); names.add("Shyam"); names.add("Rajat"); names.add("Paul"); names.add("Tom"); names.add("Kate"); //Obtaining list iterator litr=names.listIterator(); System.out.println("Traversing the list in forward direction:"); while(litr.hasNext()){ System.out.println(litr.next()); } System.out.println("nTraversing the list in backward direction:"); while(litr.hasPrevious()){ System.out.println(litr.previous()); } } }
Producción:
Traversing the list in forward direction: Shyam Rajat Paul Tom Kate Traversing the list in backward direction: Kate Tom Paul Rajat Shyam
Nota: podemos usar Iterator para recorrer List y Set, pero usando ListIterator solo podemos atravesar List. Hay muchas otras diferencias entre Iterator y ListIterator, hablaremos de ellas en la próxima publicación.
Métodos ListIterator
1) void add (E e): Inserta el elemento especificado en la lista (operación opcional).
2) booleano hasNext (): devuelve verdadero si este iterador de lista tiene más elementos al recorrer la lista hacia adelante.
3) booleano hasPrevious (): devuelve verdadero si este iterador de lista tiene varios elementos cuando se recorre la lista en la dirección opuesta.
4) E siguiente (): devuelve el siguiente elemento de la lista y avanza la posición del cursor.
5) int nextIndex (): devuelve el índice del elemento que sería devuelto por una llamada posterior a next ().
6) E Anterior (): Devuelve el elemento anterior de la lista y mueve la posición del cursor hacia atrás.
7) int previousIndex (): Devuelve el índice del elemento que sería devuelto por una llamada posterior a previous ().
8) void remove (): elimina de la lista el último elemento devuelto por next () o previous () (operación opcional).
9) conjunto vacío (E e): reemplaza el último elemento devuelto por next () o previous () con el elemento especificado (operación opcional).