Dominando la Interfaz ListIterator de Java: Guía Práctica
Interfaz ListIterator de Java
Este tutorial proporciona una visión completa de la interfaz ListIterator de Java, con ejemplos del mundo real y explicaciones claras.
La interfaz ListIterator extiende Iterator y ofrece recorrido bidireccional, permitiéndote moverte hacia adelante y hacia atrás a través de una List mientras realizas modificaciones sobre la marcha.
Características clave incluyen la capacidad de navegar, eliminar y reemplazar elementos, lo que la convierte en una herramienta esencial para cualquier desarrollador Java que trabaje con listas.
Métodos Principales de ListIterator
hasNext()– Retornatruesi existe otro elemento adelante.next()– Avanza y retorna el siguiente elemento.nextIndex()– Proporciona el índice del elemento quenext()retornará.previous()– Retrocede y retorna el elemento anterior.previousIndex()– Proporciona el índice del elemento queprevious()retornará.remove()– Elimina el último elemento retornado pornext()oprevious().set(E e)– Reemplaza el último elemento retornado con el valor especificado.
Ejemplo 1: Navegación Hacia Adelante
A continuación se muestra un ejemplo conciso que demuestra next(), nextIndex() y hasNext() en un ArrayList:
import java.util.ArrayList;
import java.util.ListIterator;
class Main {
public static void main(String[] args) {
ArrayList<Integer> numeros = new ArrayList<>();
numeros.add(1);
numeros.add(3);
numeros.add(2);
System.out.println("ArrayList: " + numeros);
ListIterator<Integer> iterador = numeros.listIterator();
int primero = iterador.next();
System.out.println("Siguiente Elemento: " + primero);
int siguienteIndice = iterador.nextIndex();
System.out.println("Posición del Siguiente Elemento: " + siguienteIndice);
System.out.println("¿Hay algún elemento siguiente? " + iterador.hasNext());
}
}
Salida
ArrayList: [1, 3, 2] Siguiente Elemento: 1 Posición del Siguiente Elemento: 1 ¿Hay algún elemento siguiente? true
Ejemplo 2: Navegación Hacia Atrás
Este ejemplo muestra previous() y previousIndex() después de avanzar el iterador dos veces:
import java.util.ArrayList;
import java.util.ListIterator;
class Main {
public static void main(String[] args) {
ArrayList<Integer> numeros = new ArrayList<>();
numeros.add(1);
numeros.add(3);
numeros.add(2);
System.out.println("ArrayList: " + numeros);
ListIterator<Integer> iterador = numeros.listIterator();
iterador.next();
iterador.next();
int previo = iterador.previous();
System.out.println("Elemento Anterior: " + previo);
int indicePrevio = iterador.previousIndex();
System.out.println("Posición del Elemento Anterior: " + indicePrevio);
}
}
Salida
ArrayList: [1, 3, 2] Elemento Anterior: 3 Posición del Elemento Anterior: 0
Inicialmente, el iterador está posicionado antes del primer elemento, por lo que llamar a previous() lanzaría una excepción. Después de dos llamadas a next(), el iterador se sitúa entre 3 y 2, haciendo que previous() retorne 3.
Java
- Dominando las Interfaces en C#: Definición, Implementación y Casos de Uso Prácticos
- Dominar Operadores en Java: Tipos, Sintaxis y Ejemplos Prácticos
- Comentarios en Java: Tipos, Uso y Mejores Prácticas
- Dominando interfaces en Java: Conceptos, implementación y mejores prácticas
- Dominando Try‑with‑Resources en Java: Gestión automática de recursos explicada
- Anotaciones en Java explicadas: Tipos, ubicación y ejemplos prácticos
- Dominando la Interfaz NavigableSet de Java: Navegación, Ordenación y Ejemplos Prácticos
- Dominando Expresiones Lambda en Java: Desde Básicos hasta Stream API
- Interfaz vs Clase Abstracta en Java: Cómo elegir la abstracción correcta
- Entendiendo las Interfaces en Java: Definiciones, Usos y Buenas Prácticas
- Java 9 Métodos Privados en Interfaces: Mejorar Encapsulamiento y Reutilización de Código