Java 8 Verschachtelte (mehrstufige) Gruppe von

Ich habe einige Klassen wie unten

class Pojo {
    List<Item> items;
}

class Item {
    T key1;
    List<SubItem> subItems;
}

class SubItem {
    V key2;
    Object otherAttribute1;
}

Ich möchte die Elemente basierend auf @ aggregierekey1 und für jede Aggregation sollten Unterelemente mit @ aggregiert werdkey2 auf folgende Weise:

Map<T, Map<V, List<Subitem>>

ie ist das mit Java 8 möglicCollectors.groupingBy Verschachtelung?

Ich habe etwas ausprobiert und bin auf halbem Weg bei @ stecken geblieb

pojo.getItems()
    .stream()
    .collect(
        Collectors.groupingBy(Item::getKey1, /* How to group by here SubItem::getKey2*/)
    );

Hinweis: Dies ist nicht dasselbe wie kaskadiertesgroupingBy führt eine mehrstufige Aggregation basierend auf Feldern im selben Objekt durch, wie beschriebenHie

Antworten auf die Frage(2)

Ihre Antwort auf die Frage