Streams y lambdas para filtrar listas en Java
Clase 19 de 31 • Curso de Java
Contenido del curso
- 10

Atributos y métodos estáticos en clases utilitarias de Java
08:43 - 11

Constantes en Java: inmutabilidad con static final
04:08 - 12

Constructores en Java para inicializar objetos con datos
08:10 - 13

Gestión de memoria en Java: stack, heap y garbage collector
07:04 - 14

Encapsulamiento en Java: Atributos privados y métodos getter y setter
09:26 - 15

Operaciones básicas con listas en Java: agregar, eliminar y recorrer
11:12 - 16

Relaciones entre clases en Java: asociación, agregación y composición
03:45 - 17

Implementación de menús interactivos con while y switch en Java
11:38 - 18

Búsqueda y eliminación de elementos en listas de Java
09:20 quiz de Construcción de clases y modelado de objetos
- 19

Streams y lambdas para filtrar listas en Java
11:55 - 20

Transformación y ordenamiento de listas con streams en Java
11:49 - 21

Validación de entrada con enums en Java
11:56 - 22

Diferencias entre Excepciones Checked y Unchecked en Java
08:16 - 23

Records para simplificar código inmutable en Java
07:00 - 24

Mapas en Java para contar visualizaciones de películas
09:47 - 25

Lectura de archivos planos y conversión a objetos en Java
13:48 - 26

Escritura de archivos planos con la API moderna de Java
09:50 quiz de Estructuras de datos y Java moderno
El uso de streams y expresiones lambda en Java permite manipular listas de forma más sencilla, eficiente y alineada con la programación funcional. Olvídate de los bucles tradicionales y disfruta de una sintaxis amigable que mejora la legibilidad del código y permite aplicar operaciones como filtrado y búsqueda en colecciones de objetos de manera fluida.
¿Cómo reemplazar el for tradicional usando foreach y lambdas en Java?
Muchos desarrolladores aprendieron a iterar sobre listas utilizando el clásico bucle for. Sin embargo, Java provee una opción moderna con el método foreach y las expresiones lambda, que hacen que el código sea más breve y elegante.
- El método foreach pertenece a la interfaz lista y recibe un consumer—una función lambda.
- Con una simple expresión, iteras e imprimes títulos u otros atributos de los objetos en una lista.
- La sintaxis de la lambda (
elemento -> operación) encapsula rápidamente la lógica a ejecutar por cada ítem. - Si la operación contiene una sola línea, no es necesario encerrar el cuerpo con llaves ni usar punto y coma.
Esta alternativa permite dejar atrás el for clásico sin perder claridad y ganando concisión.
¿Qué son los streams y cómo ayudan a filtrar listas en Java?
Streams funcionan como una cinta transportadora sobre una lista, permitiendo aplicar distintos procesos: filtrado, transformación u obtención de elementos.
- Puedes iniciar un stream desde una lista con
contenido.stream(). - El método
filterpermite elegir solo los elementos que cumplen una condición dada por una función lambda. - Para encontrar un elemento por un atributo (como el título), el filtro compara el campo deseado con el parámetro recibido.
- Si solo necesitas el primer resultado, utiliza
findFirstseguido deorElse(null)para manejar casos donde no se encuentre nada.
Es posible recoger el resultado del filtro en una nueva lista usando toList.
¿Cómo buscar películas por género y mostrar resultados usando streams?
El mismo enfoque funcional aplicado para buscar por título puede emplearse para buscar por género.
- Crea un método que recibe el género a buscar y retorna una lista de todos los elementos que cumplen la condición.
- Utiliza el filtro en el stream, esta vez por el campo género, y convierte el resultado en una lista con
toList. - Permite múltiples coincidencias ya que varios elementos pueden compartir el mismo género.
- En el menú, agrega una opción que capture el género, realice la búsqueda y muestre cuántos resultados hubo.
- Itera sobre la lista resultante con foreach y una lambda para imprimir la ficha técnica de cada película, agregando un salto de línea para mejor legibilidad.
De esta forma, las búsquedas y recorridos de listas dentro de una plataforma o aplicación resultan más intuitivos y versátiles. ¿Qué nuevas formas de filtrar o mostrar información podrías aplicar con streams y lambdas en tus propios proyectos de Java?