¿Cómo recorrer un ArrayList en Java?: aprende diferentes métodos

| Última modificación: 20 de septiembre de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Si estás aprendiendo Java, ya te habrás dado cuenta que los Arrays son súper comunes en este universo. Sirven a una infinidad de funciones y hay muchos tipos, entre ellos los ArrayList, un tipo de lista dinámica que nos permite almacenar elementos de manera flexible. Ahora bien, te preguntarás: ¿cómo recorrer un ArrayList en Java? ¿es muy complejo? La respuesta es no, no es complejo y hoy en Keepcoding te mostraremos los diferentes métodos que hay para recorrer un ArrayList en Java.

recorrer un ArrayList en Java
¿Cómo funciona un ArrayList internamente? Imagen: JavaAtPoint

¿Qué es un ArrayList en Java?

Antes de entrar en materia sobre cómo recorrer un ArrayList en Java, es necesario contextualizarnos un poco. Un ArrayList es una implementación de la interfaz List que hace posible almacenar y manejar listas dinámicas de elementos. Guarda diferencia con los array tradicionales porque en los ArrayList se puede cambiar el tamaño de manera dinámica, lo que permite añadir o eliminar elementos a conveniencia.

Diferentes formas de recorrer un ArrayList en Java

Recorrer un ArrayList en Java no es una tarea de un solo método. Existen muchas formas, hoy te mostramos algunas de ellas:

Usando un bucle for clásico

El bucle for de toda la vida es una de las formas más básicas y clásicas de recorrer un ArrayList en Java, ya que accedes a los elementos que componen el ArrayList mediante su índice y recorres la lista usando el método size():

import java.util.ArrayList;

public class Main {
public static void main(String[] args) {
ArrayList<String> lista = new ArrayList<>();
lista.add("Java");
lista.add("Python");
lista.add("C++");

for (int i = 0; i < lista.size(); i++) {
System.out.println(lista.get(i));
}
}
}

Pese a ser el método más sencillo para recorrer un ArrayList en Java, puede ser propenso a algunos errores si no se maneja de manera adecuada el tamaño del ArrayList. Sumado a esto, es una opción mucho menos eficiente en comparación con otras disponibles.

Usando un Iterator

Otra de las opciones que existe para recorrer un ArrayList en Java son los iteradores. Estos funcionan de manera uniforme con cualquier tipo de colección en Java, no solo con los ArrayList:

import java.util.ArrayList;
import java.util.Iterator;

public class Main {
public static void main(String[] args) {
ArrayList<String> lista = new ArrayList<>();
lista.add("Java");
lista.add("Python");
lista.add("C++");

Iterator<String> iterator = lista.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}

Los iteradores son útiles si necesitas eliminar elementos de la lista mientras la recorres, lo cual no es posible con el bucle for.

Usando un bucle for-each

Con la llegada de Java 5 se introdujo el bucle for-each, el cual facilita aún má sla tarea de recorrer un ArrayList en Java. Gracias a este método no necesitarás preocuparte por el índice, como en el bucle for, ya que accederás de manera directa a cada elemento de la lista:

import java.util.ArrayList;

public class Main {
public static void main(String[] args) {
ArrayList<String> lista = new ArrayList<>();
lista.add("Java");
lista.add("Python");
lista.add("C++");

for (String lenguaje : lista) {
System.out.println(lenguaje);
}
}
}

Este método es más limpio y legible que el clásico bucle for y se utiliza comúnmente en situaciones donde no necesitas modificar la lista durante el recorrido.

Usando forEach y expresiones lambda (Java 8)

En cuanto salió Java 8 se implementaron las expresiones lambda y la API de Streams, esto llevó a una simplicidad más eficiente en la forma de recorrer colecciones como son los ArrayList. Usando el método forEach() podemos recorrer la lista de manera súper compacta y elegante:

import java.util.ArrayList;

public class Main {
public static void main(String[] args) {
ArrayList<String> lista = new ArrayList<>();
lista.add("Java");
lista.add("Python");
lista.add("C++");

lista.forEach(lenguaje -> System.out.println(lenguaje));
}
}

Este enfoque es más moderno y se recomienda cuando trabajas con Java 8 o versiones superiores. Es especialmente útil si estás buscando escribir código más funcional y conciso.

¿Cómo modificar elementos en el momento de recorrer un ArrayList en Java?

Si lo que necesitas es modificar los elementos de un ArrayList mientras los recorres, puedes hacer una combinación entre el bucle clásico for o el for-each, junto al método set() de la lista. Veamos un ejemplo donde cambiamos los elementos a mayúsculas:

import java.util.ArrayList;

public class Main {
public static void main(String[] args) {
ArrayList<String> lista = new ArrayList<>();
lista.add("Java");
lista.add("Python");
lista.add("C++");

for (int i = 0; i < lista.size(); i++) {
lista.set(i, lista.get(i).toUpperCase());
}

for (String lenguaje : lista) {
System.out.println(lenguaje);
}
}
}

Si te interesa obtener más información acerca del mundo de Java y otras tecnologías en el área de la programación, no dudes en unirte al bootcamp java que Keepcoding ha preparado para ti. En él aprenderás desde lo básico hasta lo más avanzado de este lenguaje de programación conocido en todo el mundo, aquí entenderás por qué su fama no es gratuita y la gran versatilidad que brinda. ¡No pierdas la oportunidad de cambiar tu vida con nosotros!

Ramón Maldonado

Full Stack Developer y Responsable de Formación base en KeepCoding.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Java y Spring Boot

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado