Вложенная (многоуровневая) группа Java 8

У меня есть несколько классов, как показано ниже

class Pojo {
    List<Item> items;
}

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

class SubItem {
    V key2;
    Object otherAttribute1;
}

Я хочу объединить элементы на основеkey1 и для каждой агрегации, подпункты должны быть агрегированыkey2 следующим образом:

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

Как это возможно с Java 8Collectors.groupingBy вложенности?

Я пытался что-то и застрял на полпути

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

Примечание: это не то же самое, что каскадgroupingBy который выполняет многоуровневую агрегацию на основе полей в том же объекте, что и обсуждалосьВот

Ответы на вопрос(1)

Ваш ответ на вопрос