Agrupar Java 8 aninhado (multinível) por
Tenho poucas aulas como abaixo
class Pojo {
List<Item> items;
}
class Item {
T key1;
List<SubItem> subItems;
}
class SubItem {
V key2;
Object otherAttribute1;
}
Quero agregar os itens com base emkey1
e para cada agregação, os subitens devem ser agregados porkey2
da seguinte maneira:
Map<T, Map<V, List<Subitem>>
Como isso é possível com o Java 8Collectors.groupingBy
aninhamento?
Eu estava tentando algo e preso no meio do caminho
pojo.getItems()
.stream()
.collect(
Collectors.groupingBy(Item::getKey1, /* How to group by here SubItem::getKey2*/)
);
Nota: Não é o mesmo que em cascatagroupingBy
que faz agregação multinível com base em campos no mesmo objeto discutidoaqui