Hoy veremos cómo iterar o recorrer un ArrayList en Java. Recordemos que un ArrayList sirve para tener una lista de elementos de cualquier clase, además de que la misma se puede modificar (hacer crecer o eliminar elementos) a diferencia de los arreglos.

Vamos a ver 3 métodos para poder recorrer un ArrayList en Java; el primero es un for sin índice (también llamado forEach), el segundo es usando un ciclo for con un contador y el tercero es usar la función forEach del ArrayList.

Recorrer ArrayList en Java

Comenzamos definiendo un ArrayList y agregándole elementos. En este caso es un ArrayList de tipo String pero recordemos que se puede tener un ArrayList de cualquier tipo.

/*
 * Creamos un ArrayList, recordemos que un ArrayList puede ser de cualquier
 * tipo; para no complicar las cosas haremos un ArrayList de tipo String
 */
ArrayList<String> canciones = new ArrayList<>();
// Le agregamos datos
canciones.add("Ashes to ashes");
canciones.add("Beds are burning");
canciones.add("It's only rock 'n' Roll (But I like it)");

Ahora es momento de recorrerlo.

Método 1

El primer método usa lo que yo llamo un for sin índice o un for each:

System.out.println("Recorriendo con método 1");
// Método 1
for (String cancion : canciones) {
  System.out.println(cancion);
}

La sintaxis de este método es:

for(Tipo variable: arrayList)

Si, por ejemplo, fuera un ArrayList de Mascota, entonces sería:

for(Mascota m: mascotas)

Método 2

El siguiente método es como hacer un ciclo for normal desde 0 hasta N. Para obtener la longitud del ArrayList invocamos al método size, y para recorrer el ArrayList en Java hacemos un ciclo desde 0 hasta size.

// Método 2
for (int x = 0; x < canciones.size(); x++) {
  String cancion = canciones.get(x);
  System.out.println(cancion);
}

En este caso obtenemos el índice en cada paso, y para obtener el valor del ArrayList invocamos a get, pasándole el índice.

Método 3

Veamos el tercer método, el cual invoca a forEach del ArrayList y le pasa una función que será llamada por cada elemento.

// Método 3
canciones.forEach((cancion) -> {
  System.out.println(cancion);
});

Lo único que hacemos es indicar la función que debe ser llamada por cada elemento; y después la misma será invocada pasando el valor como primer argumento.

Ejemplo completo para recorrer ArrayList en Java

Veamos ahora los 3 métodos que menciono, así como su salida. El código completo es el siguiente:

/*
	Recorrer ArrayList en Java

	https://parzibyte.me/blog/
*/
import java.util.ArrayList;

class Main {
	public static void main(String[] args) {
		/*
		 * Creamos un ArrayList, recordemos que un ArrayList puede ser de cualquier
		 * tipo; para no complicar las cosas haremos un ArrayList de tipo String
		 */
		ArrayList<String> canciones = new ArrayList<>();
		// Le agregamos datos
		canciones.add("Ashes to ashes");
		canciones.add("Beds are burning");
		canciones.add("It's only rock 'n' Roll (But I like it)");
		System.out.println("Recorriendo con método 1");
		// Método 1
		for (String cancion : canciones) {
			System.out.println(cancion);
		}
		System.out.println("Recorriendo con método 2");
		// Método 2
		for (int x = 0; x < canciones.size(); x++) {
			String cancion = canciones.get(x);
			System.out.println(cancion);
		}
		System.out.println("Recorriendo con método 3");
		// Método 3
		canciones.forEach((cancion) -> {
			System.out.println(cancion);
		});
	}
}

La salida es la siguiente:

Ejecución del programa en Java que recorre un ArrayList en Java usando 3 métodos

Conclusión

Existen más métodos para estos propósitos pero me parece que con el método 2 funciona perfectamente, ya que tenemos el índice y el valor, además, no nos metemos con funciones propias del lenguaje, y podemos aplicar esto a otros lenguajes ya que solo se necesita la longitud o tamaño de la lista.

Te invito a leer más sobre Java aquí.

Si el post ha sido de tu agrado te invito a que me sigas para saber cuando haya escrito un nuevo post, haya actualizado algún sistema o publicado un nuevo software. Facebook | X | Instagram | Telegram | También estoy a tus órdenes para cualquier contratación en mi página de contacto