Streams Orta

Ara akışlar oluşturmadan her giriş için sıfır veya daha fazla öğe yayın.

✕ 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));
    }
);
Bu kodda bir sorun mu gördünüz? Bize bildirin.

Daha az bellek kullanımı

Her öğe için ara Stream oluşturulmaz.

🎯

Zorunlu stil

Döngüler ve koşullar doğrudan kullanılabilir.

📐

Esnek

Tam denetimle sıfır, bir veya çok sayıda öğe yayılabilir.

Eski Yaklaşım
flatMap + List
Modern Yaklaşım
mapMulti()
JDK'dan itibaren
16
Zorluk
Orta
Stream.mapMulti()
Mevcut

JDK 16'dan itibaren geniş çapta kullanılabilir (Mart 2021)

mapMulti(), her öğe için ara Stream nesneleri oluşturmaktan kaçınan, flatMap'e alternatif bir zorunlu yöntemdir. Eşlemenin az sayıda öğe ürettiği durumlarda daha verimlidir.

Paylaş 𝕏 🦋 in