Я хочу сгруппировать список людей. У человека есть некоторые атрибуты, такие как имя, страна, город, почтовый индекс и т.д. Я написал статический код, который работает очень хорошо:
Object groupedData = data.stream().collect(groupingBy(Person::getName, Collectors.groupingBy(Person::getCountry, Collectors.groupingBy(Person::getTown))));
Но проблема в том, что она не динамическая. Иногда я хочу просто группироваться по имени и городу, иногда по атрибутам. Как я могу это сделать? Также приветствуются решения без Java 8.