Streams y lambdas para filtrar listas en Java
Clase 19 de 31 • Curso de Java
Resumen
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
filter
permite 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
findFirst
seguido 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?