Recorrer
Existen diversas formas de recorrer los elementos de un ArrayList, dependiendo del estilo de programación y las necesidades del problema. A continuación se presentan los tres enfoques más comunes en Java:
Recorrido con bucle for clásico
Sección titulada «Recorrido con bucle for clásico»Este método permite acceder a los elementos mediante sus índices. Es útil cuando se requiere conocer o manipular la posición de cada elemento.
ArrayList<String> nombres = new ArrayList<>();nombres.add("Ana");nombres.add("Luis");
for (int i = 0; i < nombres.size(); i++) { System.out.println(nombres.get(i));}-
Acceso explícito al índice.
-
Permite modificar elementos con
set(i, nuevoValor)si es necesario.
Recorrido con for-each
Sección titulada «Recorrido con for-each»El bucle for-each es una forma más legible y segura para recorrer colecciones cuando no se necesita el índice.
for (String nombre : nombres) { System.out.println(nombre);}-
No permite acceder directamente al índice.
-
Recomendado cuando se desea simplemente leer o procesar cada elemento.
Recorrido con forEach() y expresiones lambda
Sección titulada «Recorrido con forEach() y expresiones lambda»Desde Java 8, ArrayList (como toda clase que implementa la interfaz Iterable) permite recorrer sus elementos utilizando expresiones lambda con el método forEach.
nombres.forEach(nombre -> System.out.println(nombre));-
Estilo funcional, más moderno y conciso.
-
Útil para aplicar operaciones complejas sin necesidad de estructuras externas.
También se puede usar con referencias a métodos:
nombres.forEach(System.out::println);Observaciones
Sección titulada «Observaciones»-
El recorrido con índice (
forclásico) es el único que permite modificar elementos en una posición específica. -
El uso de
for-eachyforEach()promueve un estilo más limpio y expresivo, especialmente en operaciones de lectura. -
Se debe evitar modificar la estructura del
ArrayList(agregar o eliminar elementos) durante un buclefor-eachoforEach(), ya que puede generar excepciones (ConcurrentModificationException).