Contenido del curso

Construcción de clases y modelado de objetos

Listas en Java: agregar, recorrer y eliminar

Resumen

Las listas en Java son uno de los tipos de datos más usados cuando necesitas manejar varios elementos del mismo tipo dentro de un programa. Aquí aprenderás a crear una lista, agregar películas, recorrerlas con un for y eliminar elementos, todo aplicado a una clase Plataforma de streaming.

¿Cómo se declara una lista de objetos en Java?

Todo empieza por crear la clase Plataforma con dos atributos privados: nombre y una lista de películas llamada contenido. La sintaxis usa List<Pelicula>, donde los signos < y > corresponden a los genéricos de Java, una herramienta que permite indicar qué tipo de dato vivirá dentro de la lista [00:34].

El detalle clave está en el constructor. Si solo declaras la lista, vas a chocar con un NullPointerException apenas intentes agregar algo. ¿Por qué? Porque la lista nunca fue inicializada. La forma más común de resolverlo es así:

java public Plataforma(String nombre) { this.nombre = nombre; this.contenido = new ArrayList<>(); }

ArrayList es la implementación más usada de List en Java y te da una lista lista para trabajar [04:30].

¿Qué son los genéricos en Java? Son una forma de decirle al compilador qué tipo de dato contendrá una estructura. List<Pelicula> significa que la lista solo aceptará objetos de tipo Pelicula.

¿Cómo agregar elementos a una lista en Java?

La operación más básica es agregar elementos con el método .add(). Java te ofrece varias variantes según lo que necesites.

  • add(elemento): agrega el objeto al final de la lista.
  • add(indice, elemento): lo inserta en una posición específica.
  • addAll(otraLista): une dos listas en una sola.
  • addFirst() y addLast(): agregan al principio o al final.

Para este caso, basta con la versión simple. El método agregar dentro de la clase Plataforma queda así:

java public void agregar(Pelicula elemento) { this.contenido.add(elemento); }

Desde el main, instancias la plataforma, llamas a plataforma.agregar(pelicula) y listo. Para confirmar que la película quedó guardada, usas plataforma.getContenido().size(), donde size() te devuelve cuántos elementos tiene la lista [03:40].

Un detalle de buena práctica que aparece en el ejercicio: solo se crean los getters, no los setters. ¿La razón? No queremos que alguien reemplace toda la lista de contenido por otra; sí queremos permitir operaciones sobre ella, pero no que se le asigne un valor distinto desde afuera.

¿Cómo recorrer una lista en Java con un for?

Una vez tienes elementos guardados, lo siguiente es poder recorrerlos. El método mostrarTitulos recorre la lista e imprime el título de cada película. Hay dos formas comunes de hacerlo.

La versión tradicional usa un índice entero que arranca en cero e itera mientras sea menor que el tamaño de la lista:

java for (int i = 0; i < contenido.size(); i++) { System.out.println(contenido.get(i).getTitulo()); }

El método get(i) accede al elemento en la posición i de la lista. La versión mejorada, conocida como for each, es más limpia porque elimina el manejo manual del índice:

java for (Pelicula pelicula : contenido) { System.out.println(pelicula.getTitulo()); }

Ambas funcionan igual, pero la segunda se lee mejor cuando solo necesitas pasar por cada elemento sin importar su posición [05:40].

¿Cuándo usar for tradicional o for mejorado? Usa el for tradicional cuando necesites el índice (por ejemplo, para modificar posiciones específicas). Usa el for each cuando solo quieras leer cada elemento de principio a fin.

¿Cómo eliminar un elemento de una lista en Java?

Para eliminar, Java te da el método .remove() con varias firmas, similar a add. Estas son las opciones más útiles.

  • remove(objeto): elimina el elemento exacto que le pasas.
  • remove(indice): elimina el elemento en una posición concreta.
  • removeFirst() y removeLast(): quitan el primero o el último.
  • removeIf(condicion): elimina los elementos que cumplan una condición lógica.

El método eliminar de la clase Plataforma queda muy parecido al de agregar:

java public void eliminar(Pelicula elemento) { this.contenido.remove(elemento); }

En la prueba se agregan dos películas, Harry Potter y F1 The Movie, y luego se elimina la segunda antes de mostrar los títulos. El resultado: aunque el contador inicial marcaba dos elementos, al imprimir los títulos solo aparece Harry Potter, porque el remove ya hizo su trabajo internamente sobre la lista [08:20].

Este flujo (agregar, recorrer, eliminar) es la base de cualquier manejo de colecciones en Java. Más adelante, lo vas a llevar al siguiente nivel con streams y lambdas, dos herramientas modernas que permiten filtrar, transformar y recorrer listas de forma más declarativa y limpia.

¿Qué método de los que vimos te parece más útil para tu próximo proyecto? Déjalo en los comentarios.