Вы можете использовать метод Map.groupBy
, который разделит коллекцию на карту групп в зависимости от переданного закрытияВот полный пример, который также вызывает метод collect, чтобы каждый параметр указывал на значения:
all = [
[parameter: 'foo', value: 'aaa'],
[parameter: 'foo', value: 'bbb'],
[parameter: 'bar', value: 'ccc'],
[parameter: 'baz', value: 'ddd']
]
tmpMap = all.groupBy{it.parameter}
myMap = [:].putAll(tmpMap.collect{k, v -> [k, v.value] as MapEntry})
assert myMap == [foo: ['aaa', 'bbb'], bar: ['ccc'], baz:['ddd']]