Programando con Java

Arrays y Listas en Java


Introducción


En el desarrollo en Java, una de las primeras decisiones que debes tomar al trabajar con colecciones de datos es si utilizar un Array o una Lista. Ambos permiten almacenar múltiples elementos, pero sus características, flexibilidad y casos de uso son distintos. En este artículo exploraremos qué son, cómo usarlos y cuándo conviene elegir uno sobre el otro.

¿Qué es un Array en Java?


Un Array es una estructura de datos que permite almacenar un número fijo de elementos del mismo tipo. Es una de las formas más básicas de colección en Java y su tamaño se define en el momento de su creación.

Ejemplo:

int[] numeros = new int[5]; // Array de 5 enteros
numeros[0] = 10;
numeros[1] = 20;



Nota: Tienes que tener cuidado al inicializar el array, ya que si reservas mucho más tamaño del que luego vas a utilizar, estarás desperdiciando memoria.

También se puede declarar e inicializar al mismo tiempo:

String[] frutas = { "Manzana", "Banana", "Naranja" };



Características de los Arrays


Tamaño fijo: no se puede cambiar después de creado.

Acceso rápido por índice: O(1) para lectura y escritura.

Eficientes en memoria: ocupan menos espacio que las colecciones dinámicas.

¿Cuándo usar un Array?


- Cuando sabes de antemano el número de elementos que vas a manejar.

- En tareas donde el rendimiento es crítico, como en aplicaciones que procesan grandes volúmenes de datos rápidamente.

- En estructuras más simples, como matrices o buffers.

¿Qué es una Lista en Java?


Una Lista es una colección dinámica que puede crecer o reducir su tamaño durante la ejecución. Java ofrece varias implementaciones de listas a través del framework de colecciones, siendo ArrayList una de las más utilizadas.

Ejemplo con ArrayList:

import java.util.ArrayList;
import java.util.List;

List nombres = new ArrayList<>();
nombres.add("Ana");
nombres.add("Luis");
nombres.remove("Ana");



Características de las Listas


Tamaño dinámico: puedes añadir o eliminar elementos en tiempo de ejecución.

Métodos útiles: como add(), remove(), contains(), size().

Flexibilidad: puedes cambiar fácilmente de implementación (LinkedList, Vector, etc.) sin modificar el código cliente, gracias al uso de interfaces (List).

¿Cuándo usar una Lista?


- Cuando necesitas añadir o eliminar elementos constantemente.

- Cuando no sabes cuántos elementos manejarás desde el inicio.

- Cuando necesitas usar las funciones avanzadas que ofrece el framework de colecciones.

Cómo recorrer Arrays y Listas en Java


Tanto los Arrays como las Listas permiten acceder a sus elementos utilizando bucles. A continuación, te muestro cómo hacerlo con diferentes enfoques:

Recorrer un Array:

String[] frutas = { "Manzana", "Banana", "Naranja" };

// Usando un bucle for tradicional
for (int index = 0; index < frutas.length; index++) {
    System.out.println(frutas[index]);
}

// Usando un bucle for-each
for (String fruta : frutas) {
    System.out.println(fruta);
}



Recorrer una Lista:

import java.util.ArrayList;
import java.util.List;

List nombres = new ArrayList<>();
nombres.add("Ana");
nombres.add("Luis");
nombres.add("Carlos");

// Bucle for tradicional
for (int i = 0; i < nombres.size(); i++) {
    System.out.println(nombres.get(i));
}

// Bucle for-each
for (String nombre : nombres) {
    System.out.println(nombre);
}

// Con expresión lambda (desde Java 8)
nombres.forEach(nombre -> System.out.println(nombre));



Como puedes ver, los métodos son muy similares. Sin embargo, en el caso de las listas, tienes la ventaja de contar con expresiones lambda, que permiten escribir código más limpio y funcional.

Conclusión


Tanto los Arrays como las Listas tienen su lugar en el desarrollo con Java. Los arrays son ideales para estructuras de datos simples y fijas, mientras que las listas ofrecen una solución más flexible y rica en funcionalidades. Elegir la herramienta adecuada puede marcar la diferencia en la claridad, mantenimiento y rendimiento de tu código.

2025-05-19