Fluyendo con Streams en Java: desde lo básico hasta lo avanzado

La llegada a la versión 8 de Java de la funcionalidad Streams supuso un cambio sin precedentes a la hora de afrontar el tratamiento de colecciones en la comunidad de desarrolladores. Este enfoque basado en el modelo funcional ha hecho que gran cantidad de código que era extenso y repetitivo haya pasado a ser mucho más limpio, legible y expresivo.La llegada a la versión 8 de Java de la funcionalidad Streams supuso un cambio sin precedentes a la hora de afrontar el tratamiento de colecciones en la comunidad de desarrolladores. Este enfoque basado en el modelo funcional ha hecho que gran cantidad de código que era extenso y repetitivo haya pasado a ser mucho más limpio, legible y expresivo.

Sep 26, 2025 - 11:34
Sep 28, 2025 - 15:31
 0  10
Fluyendo con Streams en Java: desde lo básico hasta lo avanzado
Fluyendo con Streams en Java: desde lo básico hasta lo avanzado

¿Qué es un Stream?

Un Stream es como una línea de producción en una fábrica:

  • Los datos (números, nombres, objetos) entran en una cinta.

  • En el camino, se les pueden aplicar filtros, transformaciones o agrupaciones.

  • Al final, sale el resultado que necesitamos.

Ejemplo básico: Filtrar datos

Supongamos que tenemos una lista de nombres y queremos mostrar solo los que empiezan con “P”.

Antes de Java 8 (con bucles):

List nombres = Arrays.asList("Ana", "Pedro", "Juan", "Paola");
for (String n : nombres) {
    if (n.startsWith("P")) {
        System.out.println(n);
    }
}

Con Streams:

nombres.stream()
       .filter(n -> n.startsWith("P"))
       .forEach(System.out::println);

Resultado:

Pedro  
Paola  

Mucho más claro, ¿verdad?

Ejemplo intermedio: Transformar datos

Queremos convertir todos los nombres a mayúsculas.

nombres.stream()
       .map(String::toUpperCase)
       .forEach(System.out::println);

Resultado:

ANA  
PEDRO  
JUAN  
PAOLA  

Ejemplo avanzado: Agrupar datos

Imagina que quieres agrupar los nombres según la cantidad de letras que tienen.

Map> agrupados = nombres.stream()
    .collect(Collectors.groupingBy(String::length));

System.out.println(agrupados);

Resultado:

{3=[Ana], 4=[Juan], 5=[Pedro, Paola]}

Esto significa:

  • Los de 3 letras → Ana

  • Los de 4 letras → Juan

  • Los de 5 letras → Pedro y Paola

Ejemplo con números: Sumar valores

Supongamos que tenemos ventas en una lista y queremos sumarlas.

List ventas = Arrays.asList(100, 200, 300, 400);

int total = ventas.stream()
                  .reduce(0, Integer::sum);

System.out.println("Total de ventas: " + total);

Resultado:

Total de ventas: 1000

El gran aprendizaje:

Los Streams en Java permiten pasar de un código largo y repetitivo a uno más directo, claro y moderno.

  • Con lo básico puedes filtrar y transformar datos fácilmente.

  • Con lo avanzado, puedes agrupar, resumir y procesar grandes volúmenes de información.

En pocas palabras: menos esfuerzo, más productividad y un estilo de programación más legible y eficiente

“Descubre cómo los Streams en Java pueden transformar tu forma de programar: menos código, más claridad y todo el poder de la programación moderna en tus manos.”

¿Cuál es su reacción?

like

dislike

love

funny

angry

sad

wow