Streams Orta

Gruplama toplayıcısının içinde düzleştirme yapmak için flatMapping() kullanın.

✕ Java 8
// Flatten within a grouping collector
// Required complex custom collector
Map<String, Set<String>> tagsByDept =
    // no clean way in Java 8
✓ Java 9+
var tagsByDept = employees.stream()
    .collect(groupingBy(
        Emp::dept,
        flatMapping(
            e -> e.tags().stream(),
            toSet()
        )
    ));
Bu kodda bir sorun mu gördünüz? Bize bildirin.
🧩

Birleştirilebilir

groupingBy içinde aşağı akış toplayıcısı olarak çalışır.

📐

Tek geçiş

Tek bir akış geçişinde düzleştirme ve gruplama yapılır.

🔗

İç içe kullanılabilir

Diğer aşağı akış toplayıcılarıyla birleştirilebilir.

Eski Yaklaşım
İç içe flatMap
Modern Yaklaşım
flatMapping()
JDK'dan itibaren
9
Zorluk
Orta
Collectors.flatMapping()
Mevcut

JDK 9'dan itibaren geniş çapta kullanılabilir (Eylül 2017)

Collectors.flatMapping(), bir bire-çok eşlemeyi aşağı akış toplayıcısı olarak uygular. Stream.flatMap() işlevinin toplayıcı karşılığıdır — groupingBy veya partitioningBy içinde kullanışlıdır.

Paylaş 𝕏 🦋 in