Streams Intermedio

Emite cero o más elementos por entrada sin crear streams intermedios.

✕ Java 8
stream.flatMap(order ->
    order.items().stream()
        .map(item -> new OrderItem(
            order.id(), item)
        )
);
✓ Java 16+
stream.<OrderItem>mapMulti(
    (order, downstream) -> {
        for (var item : order.items())
            downstream.accept(
                new OrderItem(order.id(), item));
    }
);
¿Ves un problema con este código? Cuéntanos.

Menos asignaciones

No se crea un Stream intermedio por elemento.

🎯

Estilo imperativo

Usa bucles y condicionales directamente.

📐

Flexible

Emite cero, uno o muchos elementos con control total.

Enfoque Antiguo
flatMap + List
Enfoque Moderno
mapMulti()
Desde JDK
16
Dificultad
Intermedio
Stream.mapMulti()
Disponible

Ampliamente disponible desde JDK 16 (marzo 2021)

mapMulti() es una alternativa imperativa a flatMap que evita crear objetos Stream intermedios para cada elemento. Es más eficiente cuando el mapeo produce una pequeña cantidad de elementos.

Compartir 𝕏 🦋 in