Как сгруппировать по значениям внутри разных ключей? - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть список, и я хочу сгруппировать по этим значениям.

 data=[[name:'Test',job:'Dev',exp:2],
       [name:'Test1',job:'Dev',exp:3]]

 data.groupBy{ it.job }

Результат:

[Dev:[[name:Test, job:Dev, exp:2], [name:Test1, job:Dev, exp:3]]]

Ожидаемый результат:

[Dev:[exp:[2,3]]]

1 Ответ

1 голос
/ 19 апреля 2019

Одного groupBy недостаточно, чтобы решить это.Вам нужно дальнейшее формирование данных.Вы заинтересованы только во всех *.exp записях результата.Например,

def data=[[name:'Test',job:'Dev',exp:2],
    [name:'Test1',job:'Dev',exp:3]]

println(data.groupBy{it.job}.collectEntries{[it.key, it.value*.exp]})
// => [Dev:[2, 3]]
...