En este tutorial, aprenderemos sobre la interfaz Java ListIterator con la ayuda de un ejemplo.
La ListIterator
interfaz del marco de colecciones de Java proporciona la funcionalidad para acceder a elementos de una lista.
Es bidireccional. Esto significa que nos permite iterar elementos de una lista en ambas direcciones.
Extiende la Iterator
interfaz.
La List
interfaz proporciona un listIterator()
método que devuelve una instancia de la ListIterator
interfaz.
Métodos de ListIterator
La ListIterator
interfaz proporciona métodos que se pueden utilizar para realizar varias operaciones en los elementos de una lista.
hasNext()
- devuelve verdadero si existe un elemento en la listanext()
- devuelve el siguiente elemento de la listanextIndex()
devuelve el índice del elemento quenext()
devolverá el métodoprevious()
- devuelve el elemento anterior de la listapreviousIndex()
- devuelve el índice del elemento queprevious()
devolverá el métodoremove()
- elimina el elemento devuelto pornext()
oprevious()
set()
- reemplaza el elemento devuelto pornext()
oprevious()
con el elemento especificado
Ejemplo 1: implementación de ListIterator
En el siguiente ejemplo, hemos implementado los métodos next()
, nextIndex()
y hasNext()
de la ListIterator
interfaz en una lista de arreglos.
import java.util.ArrayList; import java.util.ListIterator; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(3); numbers.add(2); System.out.println("ArrayList: " + numbers); // Creating an instance of ListIterator ListIterator iterate = numbers.listIterator(); // Using the next() method int number1 = iterate.next(); System.out.println("Next Element: " + number1); // Using the nextIndex() int index1 = iterate.nextIndex(); System.out.println("Position of Next Element: " + index1); // Using the hasNext() method System.out.println("Is there any next element? " + iterate.hasNext()); ) )
Salida
ArrayList: (1, 3, 2) Siguiente elemento: 1 Posición del siguiente elemento: 1 ¿Hay algún elemento siguiente? cierto
Ejemplo 2: implementación de ListIterator
En el siguiente ejemplo, hemos implementado los métodos previous()
y previousIndex()
de la ListIterator
interfaz en una lista de arreglos.
import java.util.ArrayList; import java.util.ListIterator; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(3); numbers.add(2); System.out.println("ArrayList: " + numbers); // Creating an instance of ListIterator ListIterator iterate = numbers.listIterator(); iterate.next(); iterate.next(); // Using the previous() method int number1 = iterate.previous(); System.out.println("Previous Element: " + number1); // Using the previousIndex() int index1 = iterate.previousIndex(); System.out.println("Position of the Previous element: " + index1); ) )
Salida
ArrayList: (1, 3, 2) Elemento anterior: 3 Posición del elemento anterior: 0
En el ejemplo anterior, inicialmente, la instancia de Iterator
estaba antes de 1. Como no había ningún elemento antes de 1, llamar al previous()
método arrojará una excepción.
Luego usamos los next()
métodos 2 veces. Ahora la Iterator
instancia estará entre 3 y 2.
Por tanto, el previous()
método devuelve 3.