Java Iterator
El Iterator en Java es una interfaz que proporciona una forma de recorrer una colección de objetos, como listas o conjuntos, elemento a elemento. Forma parte del Marco de Colecciones de Java y se encuentra en el paquete java.util. La interfaz Iterator se utiliza para acceder secuencialmente a los elementos de una colección sin exponer la estructura subyacente de la colección.
Métodos clave
La interfaz Iterator proporciona tres métodos principales:
hasNext(): Devuelvetruesi la iteración tiene más elementos. Permite comprobar si hay más elementos sobre los que iterar.boolean hasNext();next(): Devuelve el siguiente elemento de la iteración. Debe llamarse después dehasNext()para asegurarse de que hay un elemento siguiente.E next();remove(): Elimina el último elemento devuelto por el métodonext()de la colección subyacente. Este método es opcional y puede lanzarUnsupportedOperationExceptionsi la colección no admite la eliminación.void remove();
Ejemplos
Ejemplo 1: Uso básico con Lista
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class IteratorExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String fruit = iterator.next();
System.out.println(fruit);
}
}
}
En este ejemplo, se crea un ArrayList de cadenas y se rellena con nombres de frutas. Se obtiene un Iterator de la lista para recorrer e imprimir cada fruta.
Ejemplo 2: Eliminar elementos
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class RemoveExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String fruit = iterator.next();
if ("Banana".equals(fruit)) {
iterator.remove();
}
}
System.out.println(list);
}
}
Este ejemplo muestra cómo eliminar elementos de una lista utilizando Iterator. El elemento "Plátano" se elimina durante la iteración.
Consejos y buenas prácticas
- Utiliza
hasNext()Antes denext(): Comprueba siemprehasNext()antes de llamar anext()para evitarNoSuchElementException. - Evita la ConcurrentModificationException: No modifiques directamente la colección mientras iteras sobre ella. Utiliza el método
remove()deIteratorpara eliminar elementos de forma segura. - Utiliza el bucle For mejorado siempre que sea posible: Para iteraciones sencillas en las que no es necesaria la eliminación, el bucle for mejorado de Java (
for-each) puede ser más conciso y legible. - Comprender las operaciones no admitidas: No todas las colecciones admiten la operación
remove(). Conoce las capacidades de la colección para evitarUnsupportedOperationException. - Considera alternativas: Para necesidades de iteración más complejas, considera el uso de
ListIterator, que proporciona capacidades adicionales como la iteración bidireccional y la modificación de elementos.
Aprende Java Essentials
Desarrolla tus conocimientos de Java desde la base y domina los conceptos de programación.