Обратите внимание, я добавил дубликат (a1) в одно из значений карты, чтобы продемонстрировать, как устранить дубликаты в случае их наличия. Если вы все еще хотите сохранить дубликаты, просто удалите .unique()
из приведенного ниже подхода.
def map = [a:['a1','b1','c1','a1'],b:['a1','b1','c1','d1']]
map.inject([:].withDefault { [] }) { acc, key, val ->
val.collect { (acc[it] << key).unique() }
acc
}
// [a1:[a, b], b1:[a, b], c1:[a, b], d1:[b]]