ArrayList de Java: cómo crear y utilizar una de estas listas

El ArrayList es una de las estructuras de datos más utilizadas en Java. Permite modificar y almacenar dinámicamente una colección de objetos. En este artículo te presentamos la sintaxis y los métodos de ArrayList de Java.

¿Cuál es la diferencia entre ArrayList y Array en Java?

El ArrayList de Java tiene un tamaño dinámico, lo que significa que los elementos pueden ser fácilmente añadidos o eliminados. Además, la clase ArrayList pertenece al Java Collections Framework y, a diferencia de los arrays, no está disponible de forma nativa. Debe importarse de la biblioteca java.util.

El ArrayList es una opción apropiada cuando la longitud de la lista de Java puede variar. Algunos ejemplos son el almacenamiento de objetos, la búsqueda u ordenación de datos y la creación de listas o colas.

El tamaño del tipo de datos array no puede modificarse. Por lo tanto, el número de objetos que debe contener el array debe conocerse de antemano. Por ello, los arrays son adecuados para gestionar un conjunto predefinido de tipos de datos primitivos como int, float, chat o boolean.

Una desventaja de ArrayList es el mayor tiempo de acceso. Mientras que con los arrays existe una zona de memoria reservada fija, con ArrayList esta no es contigua. Por lo tanto, es importante tener en cuenta las ventajas y desventajas respectivas y seleccionar la estructura de datos adecuada para cada uso.

La sintaxis de Java ArrayList

Antes de crear un ArrayList, la clase correspondiente debe ser importada de la librería java.util.

import java.util.ArrayList;
Java

La sintaxis general es:

ArrayList<Type> arrayList= new ArrayList<>();
Java

“Type” representa el tipo de datos respectivo de Java ArrayList.

A continuación, creamos listas de tipo String e Integer.

ArrayList<String> arrayList= new ArrayList<>();
Java
ArrayList<Integer> arrayList= new ArrayList<>();
Java

ArrayList utiliza la clase wrapper correspondiente de los tipos de datos primitivos para que sean tratados como objetos. Por lo tanto, necesitamos especificar Integer en lugar de int.

Ejemplos de métodos ArrayList de Java

Operaciones como añadir o eliminar elementos no se realizan con ArrayList utilizando operadores Java, sino a través de métodos predefinidos. A continuación, te mostramos los métodos ArrayList más comunes.

Añadir elementos

Una vez creada la ArrayList “colors” de tipo String, añadimos varios elementos con el método .add().

import java.util.ArrayList;
class Main {
    public static void main(String[] args){
        ArrayList<String> colors = new ArrayList<>();
        colors.add("blue");
        colors.add("red");
        colors.add("green");
        System.out.println("ArrayList: " + colors);
    }
}
Java

Esto da este resultado:

ArrayList: [blue, red, green]
Java

Eliminar elementos

Para eliminar objetos de un ArrayList Java, utilizamos el método .remove() con la especificación del índice del elemento.

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> colors = new ArrayList<>();
        colors.add("blue");
        colors.add("red");
        colors.add("green");
        System.out.println("ArrayList: " + colors);
        String color = colors.remove(1);
        System.out.println("ArrayList: " + colors);
        System.out.println("Removed Element: " + color);
    }
}
Java

El resultado muestra la ArrayList modificada y el elemento eliminado:

ArrayList: [blue, green]
Removed Element: red
Java

Como en la mayoría de los lenguajes de programación, en Java se comienza a contar en la posición 0. Por lo tanto, el elemento eliminado en el índice 1 es red.

Acceso a los elementos de una Java ArrayList

Con la función .get() accedemos a un elemento en una posición concreta.

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> clothes = new ArrayList<>();
        clothes.add("jacket");
        clothes.add("shirt");
        clothes.add("pullover");
        System.out.println("ArrayList: " + clothes);
        String str = clothes.get(2);
        System.out.print("Element at index 2: " + str);
    }
}
Java

Como resultado obtenemos:

ArrayList: [jacket, shirt, pullover]
Element at index 2: pullover
Java

Modificar elementos

Con .set() establecemos un nuevo elemento en un índice específico.

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> colors = new ArrayList<>();
        colors.add("blue");
        colors.add("red");
        colors.add("green");
        System.out.println("ArrayList: " + colors);
        colors.set(2, "yellow");
        System.out.println("Modified ArrayList: " + colors);
    }
}
Java

En el resultado vemos ahora yellow en vez de green en el índice 2:

ArrayList: [blue, red, green]
Modified ArrayList: [blue, red, yellow]
Java

Determinar la longitud del Java ArrayList

El número de elementos de un ArrayList se puede calcular fácilmente con el método .size().

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> colors = new ArrayList<>();
        colors.add("blue");
        colors.add("red");
        colors.add("green");
        System.out.println(colors.size());
    }
}
Java

Como resultado obtenemos:

3
Java

Ordenar e iterar a través de un ArrayList

Para ordenar un ArrayList en Java, hay que importar la clase Collections. Para la iteración utilizamos un bucle Java For Each. Para cada iteración del bucle, el elemento respectivo es enviado a la consola.

import java.util.ArrayList;
import java.util.Collections;
public class Main {
    public static void main(String[] args) {
        ArrayList<Integer> ages = new ArrayList<Integer>();
        ages.add(20);
        ages.add(54);
        ages.add(17);
        ages.add(9);
        Collections.sort(ages);
        for (int i : ages) {
            System.out.println(i);
        }
    }
}
Java

Los elementos del ArrayList se muestran en orden ascendente:

9
17
20
54
Java