Я пытаюсь придумать способ сделать ключи из списка значений.
Например: у меня есть эта карта [ a: [1, 2], b: [1, 3, 4] ]
Я хотел бы преобразовать его в [ 1: [a, b], 2: [a], 3: [b], 4: [b] ]
В основном я прошу отличную версию Как преобразовать ключ / значение в карту
.
Пока что мое решение немного излишне, потому что я собираю все значения и создаю новые пары ключ-значение:
def m = [ a: [1, 2], b: [1, 3, 4] ]
def transformed = m.collectMany { k, v -> v }.collectEntries { v -> [ v, [] ] }
m.collectMany { k, v -> v.collect { vi -> [ vi, k ] } }.each { v, k ->
transformed[v] += k
}
transformed
Есть ли лучший способ добиться этого преобразования?