转置一张地图收集钥匙

Sco*_*ell 8 maps groovy transpose

我正在尝试转置地图,以便:

[x: y, w: y, a: b]
Run Code Online (Sandbox Code Playgroud)

[y: [x, w], b: a]
Run Code Online (Sandbox Code Playgroud)

(所有变量都是字符串)做类似的事情

["x": "y", "w": "y", "a": "b"].collectEntries { [it.value, it.key] }
Run Code Online (Sandbox Code Playgroud)

让我分道扬but,但是踩踏"y"的第一个新值.我只得到:[y:w,b:a]

将新值添加到数组中以获取其常用新键的最佳方法是什么?感谢您的任何帮助或建议.

kda*_*bir 16

我希望这有帮助 :

def map = ["x": "y", "w": "y", "a": "b"]

map.groupBy{ it.value }.collectEntries{ k, v -> [k, v.keySet()] }
Run Code Online (Sandbox Code Playgroud)