Streams Intermedio

Usa flatMapping() per appiattire all'interno di un collector di raggruppamento.

✕ 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()
        )
    ));
Vedi un problema con questo codice? Faccelo sapere.
🧩

Componibile

Funziona come collector downstream all'interno di groupingBy.

📐

Un passaggio

Appiattisci e raggruppa in un'unica traversata dello stream.

🔗

Annidabile

Combina con altri collector downstream.

Approccio Vecchio
flatMap annidato
Approccio Moderno
flatMapping()
Dal JDK
9
Difficoltà
Intermedio
Collectors.flatMapping()
Disponibile

Ampiamente disponibile dal JDK 9 (settembre 2017)

Collectors.flatMapping() applica una mappatura uno-a-molti come collector downstream. È l'equivalente collector di Stream.flatMap() — utile all'interno di groupingBy o partitioningBy.

Condividi 𝕏 🦋 in