Saltar al contenido principal
Documentos
Java keywordsMatrices JavaProgramación orientada a objetos en JavaJava File HandlingIntroducción a JavaConceptos básicos del lenguaje Java

Java ArrayList

El ArrayList en Java forma parte del Marco de Colecciones de Java y se encuentra en el paquete java.util. Es una implementación de matriz redimensionable de la interfaz List, que proporciona una forma cómoda de almacenar colecciones de elementos de tamaño dinámico.

Utilización

ArrayList se utiliza cuando necesitas una matriz flexible que pueda crecer y reducir su tamaño. Permite un acceso aleatorio rápido y es adecuado para escenarios en los que se requieren operaciones de lectura frecuentes.

Syntax

ArrayList<Type> arrayListName = new ArrayList<Type>();
  • Type: El tipo de elementos de la lista.
  • arrayListName: El nombre de la instancia ArrayList.

Ejemplos

Ejemplo 1: Operaciones básicas

import java.util.ArrayList;

public class BasicArrayListExample {
    public static void main(String[] args) {
        ArrayList<String> fruits = new ArrayList<>();
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Orange");

        System.out.println("Fruits: " + fruits);

        fruits.remove("Banana");
        System.out.println("After removal: " + fruits);

        System.out.println("First fruit: " + fruits.get(0));
    }
}

En este ejemplo, se crea un ArrayList de tipo String para almacenar los nombres de las frutas. El método add() se utiliza para insertar elementos, remove() borra un elemento y get() recupera un elemento por su índice.

Ejemplo 2: Iterar sobre una lista

import java.util.ArrayList;

public class IterateArrayListExample {
    public static void main(String[] args) {
        ArrayList<Integer> numbers = new ArrayList<>();
        numbers.add(10);
        numbers.add(20);
        numbers.add(30);

        for (int number : numbers) {
            System.out.println(number);
        }
    }
}

Este ejemplo muestra cómo iterar sobre un ArrayList utilizando un bucle for-each. Se crea un ArrayList de tipo Integer, y cada elemento se imprime en la consola.

Ejemplo 3: Ordenar una lista

import java.util.ArrayList;
import java.util.Collections;

public class SortArrayListExample {
    public static void main(String[] args) {
        ArrayList<String> names = new ArrayList<>();
        names.add("John");
        names.add("Alice");
        names.add("Bob");

        Collections.sort(names);

        System.out.println("Sorted names: " + names);
    }
}

En este ejemplo, un ArrayList de tipo String se ordena utilizando el método Collections.sort(), que ordena los elementos en orden natural.

Operaciones adicionales

La clase ArrayList proporciona varios métodos para realizar operaciones con los elementos:

  • Acceder a los elementos: Utiliza el método get() para recuperar elementos por índice.
  • Modificar elementos: Utiliza el método set() para cambiar un elemento en un índice concreto.
  • Eliminar elementos: Utiliza el método remove() para eliminar un elemento por índice, y el método clear() para eliminar todos los elementos.
  • Obtener el tamaño de ArrayList: Utiliza el método size() para hallar el número de elementos de ArrayList.
  • Utilizar otros tipos: Almacena distintos tipos de datos en ArrayList utilizando clases envolventes para tipos primitivos (por ejemplo, Integer, Boolean).

Consejos y buenas prácticas

  • Capacidad inicial: Si se conoce de antemano el tamaño del ArrayList, especifica una capacidad inicial para mejorar el rendimiento y reducir la necesidad de redimensionar.
    ArrayList list = new ArrayList<>(50); // Initial capacity of 50
  • Tipo Seguridad: Utiliza genéricos para garantizar la seguridad de tipos y evitar errores en tiempo de ejecución.
    ArrayList numbers = new ArrayList<>(); // Type-safe declaration
  • Evita el Redimensionamiento Frecuente: Minimiza las adiciones y eliminaciones frecuentes de elementos para reducir la sobrecarga de las operaciones de redimensionamiento.
  • Utiliza el Iterador para una Eliminación Segura: Cuando elimines elementos durante la iteración, utiliza un Iterator para evitar ConcurrentModificationException.
    Iterator iterator = list.iterator();
    while (iterator.hasNext()) {
        if (condition) {
            iterator.remove();
        }
    }
  • Considera ListaEnlazada para Inserciones/Delimitaciones Frecuentes: Si se necesitan inserciones y supresiones frecuentes, considera la posibilidad de utilizar LinkedList, que ofrece un mejor rendimiento para esas operaciones.

Aprende Java Essentials

Desarrolla tus conocimientos de Java desde la base y domina los conceptos de programación.
Empieza a aprender gratis