La clase `Stream` de Java
Introducción
La clase Stream
de Java es parte del paquete java.util.stream
y se utiliza para procesar secuencias de elementos de manera funcional. Proporciona una forma eficiente y declarativa de realizar operaciones en colecciones, como filtrado, mapeo y reducción.
Creación de Streams
Los streams se pueden crear a partir de diferentes fuentes, como colecciones, arreglos o generadores. Aquí hay algunos ejemplos de cómo crear streams:
Operaciones intermedias y terminales
Los streams permiten realizar operaciones intermedias y terminales. Las operaciones intermedias son perezosas y no se ejecutan hasta que se invoca una operación terminal. Las operaciones terminales producen un resultado y finalizan el stream. Aquí hay algunos ejemplos de operaciones intermedias y terminales:
En este ejemplo, la operación filter
es intermedia y collect
es terminal. La operación map
también es intermedia y transforma cada elemento del stream. La operación collect
recopila los elementos del stream en una lista.
Operaciones de reducción
Las operaciones de reducción permiten combinar los elementos de un stream en un solo resultado. Algunas operaciones de reducción comunes son reduce
, count
, sum
, average
y max/min
. Aquí hay un ejemplo de cómo usar la operación reduce
para sumar los elementos de un stream:
En este ejemplo, la operación reduce
toma dos elementos y los suma. El resultado es un Optional
que contiene la suma de los elementos del stream. Si el stream está vacío, el resultado será un Optional.empty()
. En este caso, se utiliza ifPresent
para imprimir el resultado solo si está presente.
Conclusión
La clase Stream
de Java proporciona una forma poderosa y flexible de procesar colecciones de datos. Permite realizar operaciones de manera declarativa y eficiente, utilizando un enfoque funcional. Con su capacidad para crear streams a partir de diferentes fuentes y realizar operaciones intermedias y terminales, es una herramienta valiosa para desarrolladores de Java. Al comprender cómo funcionan los streams y cómo utilizarlos, puedes escribir código más limpio, mantenible y eficiente.