Java 10 minutos de lectura

Arrays y ArrayList en Java

Aprende la diferencia entre arrays y ArrayList, cómo usarlos correctamente, y evita errores comunes de rendimiento y legibilidad.

Por InsiderAnh 5 de julio de 2025

Introducción

Los arrays y las listas son estructuras fundamentales para almacenar y trabajar con colecciones de datos. En este capítulo aprenderás a utilizar correctamente Array y ArrayList en Java.

Arrays

Los arrays tienen un tamaño fijo y son muy eficientes cuando sabemos cuántos elementos vamos a manejar. Son ideales para optimizar el uso de memoria.

  • Se accede a los elementos por índice.
  • El índice comienza en 0.
  • No se pueden agregar ni eliminar elementos una vez creado.

ArrayList

Los ArrayList son estructuras dinámicas. Permiten agregar, eliminar y reorganizar elementos de forma sencilla. Son muy usadas en aplicaciones modernas.

  • Internamente usan un array redimensionable.
  • Permiten almacenar solo objetos, no tipos primitivos.
  • Se encuentran en java.util.
Java

// Declaración de un array fijo
int[] numeros = new int[5];
numeros[0] = 10;
numeros[1] = 20;

// Recorrido de un array con for tradicional
for (int i = 0; i < numeros.length; i++) {
  System.out.println(numeros[i]);
}

// Recorrido con for-each
for (int numero : numeros) {
  System.out.println(numero);
}

// ArrayList dinámico
import java.util.ArrayList;

ArrayList<String> lenguajes = new ArrayList<>();
lenguajes.add("Java");
lenguajes.add("Kotlin");
lenguajes.add("Python");

// Acceso y modificación
System.out.println(lenguajes.get(1)); // Kotlin
lenguajes.set(1, "Go");

// Eliminar elementos
lenguajes.remove("Python");

// Malas prácticas
// 1. Usar ArrayList cuando el tamaño es fijo
// 2. Recorrer con for tradicional cuando no necesitas el índice

// Buenas prácticas
// 1. Preferir for-each para legibilidad
// 2. Evitar operaciones costosas dentro del bucle
// 3. Usar métodos útiles como contains, indexOf, clear
if (lenguajes.contains("Java")) {
  System.out.println("Está en la lista");
}

Buenas prácticas

  • Prefiere for-each si no necesitas el índice.
  • No modifiques la colección mientras la recorres.
  • Usa ArrayList solo cuando necesites un tamaño dinámico.
  • Aprovecha métodos como contains(), isEmpty(), clear() para escribir código más limpio.

Malas prácticas comunes

  • Usar un ArrayList sin necesidad cuando un array simple es suficiente.
  • Insertar o eliminar muchos elementos en medio de un ArrayList, lo cual es costoso.
  • Crear arrays sin inicializarlos adecuadamente, generando errores por NullPointerException.

Ejemplo Práctico

Imagina que quieres guardar los nombres de lenguajes aprendidos por un estudiante. Puedes usar un ArrayList para agregarlos dinámicamente conforme aprende más:

Java

ArrayList<String> lenguajes = new ArrayList<>();
lenguajes.add("Java");
lenguajes.add("Python");

if (!lenguajes.contains("Kotlin")) {
  lenguajes.add("Kotlin");
}

Nota Importante

Usa arrays cuando el tamaño sea fijo y el rendimiento crítico. Usa ArrayList para estructuras más flexibles. Siempre escoge la herramienta adecuada para la situación.

Conclusión

Dominar arrays y listas te permite gestionar colecciones de datos de manera eficiente. Saber cuándo usar cada una es clave para escribir código limpio y optimizado. En el próximo capítulo, veremos cómo trabajar con bucles para automatizar tareas repetitivas.