Volver a Java Básico

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
// 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:

ArrayList<String> lenguajes = new ArrayList<>(); lenguajes.add("Java"); lenguajes.add("Python"); if (!lenguajes.contains("Kotlin")) { lenguajes.add("Kotlin"); }

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.