Icono play
Java
ArrayList

¿Qué es un ArrayList en Java?

Un ArrayList es básicamente un array dinámico que nos permite almacenar datos sin la limitación de los arrays normales que precisan definir un tamaño.

La clase ArrayList en Java, implementa la super clase interface list, funciona similar a un vector, con la ventaja de que su incremento es solo el 50% de su capacidad.

¿Por qué es una ventaja? Porque utiliza menos recursos que el vector. Esta es una de las grandes diferencias con los vectores.

Para utilizar un ArrayList, debemos llamar al paquete java.util, en la primera línea de nuestro programa:

import java.util.ArrayList;

Principales características de los ArrayList

  • Puede contener elementos duplicados.
  • Trabaja con una base de índices, por lo que se puede acceder a su contenido de forma aleatoria.
  • Mantiene el orden de inserción de los elementos almacenados.
  • No permite el uso de datos primitivos (int, double, char y long)
  • Esta clase se extiende de AbstractList e implementa el interface List
  • Al eliminar un elemento, todos los elementos contenidos en el ArrayList, se desplazan disminuyendo su índice en una posición.

Métodos de la clase ArrayList

Remove()

En los ArrayList podemos eliminar con remove() y el nombre del elemento en el caso de los String, también podemos hacerlo con el número de posición.

Add()

Para agregar elementos a un ArrayList utilizamos el método add() y entre paréntesis el elemento a agregar.

Contains()

Podemos buscar un elemento con el método contains(), especificando dentro de los paréntesis el elemento a buscar.

Size()

Este método es para obtener en cualquier momento el número de elementos del ArrayList

¿Cómo recorrer un ArrayList en Java?

Para recorrer un ArrayList, existen varias maneras, la más utilizada es implementar una estructura for.

Tenemos dos formas de hacerlo a través de un ciclo for: La forma reducida y la forma clásica o completa

Forma reducida:

       for (String nombre: lista) {
     System.out.println("Este es el recorrido con un for reducido " + nombre);
 }

Forma clásica o completa:

     for (int i = 0; i < lista.size(); i++) {
    System.out.println("Este es el recorrido con un for clasico: " + lista.get(i));
}  

Hay otras formas de recorrer un ArrayList, pero las presentadas son las más usadas.

¿Cómo convertir un ArrayList a un array clásico en Java?

Si necesitamos hacer esta conversión, podemos realizarla a través de un for en su forma completa.

String array[] = new String[lista.size()];
for (int i = 0; i < lista.size(); i++) {
    array[i] = lista.get(i);
}
for (String elemento: array) {
    System.out.println("Aquí mostramos el array: " + elemento);
}

¿Cuándo usar un ArrayList en Java?

Escogeremos usar un ArrayList, cuando la tarea a ejecutar sea secuencial.

ArrayList no es recomendable para programación multihilo o concurrente (ejecución de más de una tarea a la vez), porque no es seguro para este tipo de proceso.

En definitiva, usaremos vector en programación concurrentearraylist en programación secuencial.

Ejemplo de uso de ArrayList

import java.util.ArrayList;

public class arrayList {
    public static void main(String[] args) {
        ArrayList < String > lista = new ArrayList < String > (); //declaración del arraylist
        lista.add("ElementoA"); //cargamos la lista
        lista.add("ElementoB");
        lista.add("ElementoC");
        System.out.println("contenido: " + lista); //mostramos el contenido
        lista.remove("ElementoB"); //eliminamos un elemento
        System.out.println("contenido: " + lista); //mostramos el contenido

        //recorrer un ArrayList con un for reducido:
        for (String nombre: lista) {
            System.out.println("Este es el recorrido con un for reducido " + nombre);
        }
        //recorrer un ArrayList con un for clásico o completo:
        for (int i = 0; i < lista.size(); i++) {
            System.out.println("Este es el recorrido con un for clasico: " + lista.get(i));
        }
        //convirtiendo un ArrayList en un array clásico
        String array[] = new String[lista.size()];
        for (int i = 0; i < lista.size(); i++) {
            array[i] = lista.get(i);
        }
        for (String elemento: array) {
            System.out.println("Aqui mostramos el array: " + elemento);
        }
    }
}

También podemos hacer la conversión utilizando un objeto:

      for (Object arrayObjeto: lista.toArray()) {
      System.out.println("esto es con object: " + arrayObjeto.toString());

El método toArray() nos permite convertir un ArrayList en un array.

El método toString() lo utilizamos para convertir a String (es decir, a una cadena de texto) cualquier objeto Java.

¿Todavía no te has apuntado a nuestro Bootcamp?
Tenemos muchos cursos para ofrecerte y ¡TOTALMENTE GRATIS! Estos son algunos de ellos: