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:

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í.