Grupo Java 8 anidado (multinivel) por
Tengo pocas clases como abajo
class Pojo {
List<Item> items;
}
class Item {
T key1;
List<SubItem> subItems;
}
class SubItem {
V key2;
Object otherAttribute1;
}
Quiero agregar los artículos basados enkey1
y para cada agregación, los subpuntos se deben agregar porkey2
de la siguiente manera:
Map<T, Map<V, List<Subitem>>
¿Cómo es esto posible con Java 8?Collectors.groupingBy
anidamiento?
Estaba intentando algo y me quedé a medio camino
pojo.getItems()
.stream()
.collect(
Collectors.groupingBy(Item::getKey1, /* How to group by here SubItem::getKey2*/)
);
Nota: Esto no es lo mismo que en cascadagroupingBy
que hace la agregación multinivel basada en campos en el mismo objeto como se discutióaquí