Итак, мы можем:
Расплавить список карт в длинный список, где каждый элемент имеет общую структуру k / v
Затем сгруппировать по ключу
Затем нам нужно пройти через эту новую карту и очистить значения
, что дает нам:
def result = [ [a:"c", b:"e"], [a:"d",b:"f"] ]
*.collect { [k: it.key, v: it.value] }
.flatten()
.groupBy { it.k }
.collectEntries { a, b ->
[a, b.v]
}
assert result == [a:['c', 'd'], b:['e', 'f']]