Как можно сгруппировать значения карты по 2 различным критериям, чтобы получить выходные данные ниже?
def listOfMaps = [
[name:'Clark', city:'London', hobby: 'chess'], [name:'Sharma', city:'London', hobby: 'design'],
[name:'Maradona', city:'LA', hobby: 'poker'], [name:'Zhang', city:'HK', hobby: 'chess'],
[name:'Ali', city: 'HK', hobby: 'poker'], [name:'Liu', city:'HK', hobby: 'poker'],
[name:'Doe', city:'LA', hobby: 'design'], [name:'Smith', city:'London', hobby: 'poker'],
[name:'Johnson', city: 'London', hobby: 'poker'], [name:'Waters', city:'LA', hobby: 'poker'],
[name:'Hammond', city:'LA', hobby: 'design'], [name:'Rogers', city:'LA', hobby: 'chess'],
]
групповой порядок: хобби, город
poker
London
Smith
Johnson
LA
Maradona
Waters
HK
Ali
Liu
design
London
Sharma
LA
Doe
Hammond
HK
chess
London
Clark
LA
Rogers
HK
Zhang
групповой порядок: город, хобби
London
poker
Smith
Johnson
design
Sharma
chess
Clark
LA
poker
Maradona
Waters
design
Doe
Hammond
chess
Rogers
HK
poker
Ali
Liu
design
chess
Zhang
Редактировать:
Мне действительно нужен способ итерации кэффективно проходить по структуре группы и иметь возможность построить результат (группа / подгруппа / имя).
Что-то вроде:
- для каждой группы, распечатать / вывести имя группы;
- для каждой подгруппы внутри группы, распечатать / вывести имя подгруппы
- внутри каждой подгруппы, распечатать имена.
Это даст результат, описанный выше.
Как приятно, я бы хотел отсортировать всю структуру данных (группы и имена).