如何转置
u2:[g2,g3], u3:[g1,g2,g3], u1:[g1,g2]
进入
g1:[u1,u3], g2:[u1,u2,u3], g3:[u2,u3]
在Groovy中。
答案 0 :(得分:1)
使用inject
和withDefault
:
def map = [u2:['g2','g3'], u3:['g1','g2','g3'], u1:['g1','g2']]
assert map.inject([:].withDefault{ [] }) { newMap, k, v ->
v.collect { newMap[it] << k }
newMap
} == ['g2':['u2', 'u3', 'u1'], 'g3':['u2', 'u3'], 'g1':['u3', 'u1']]