我想转换一个包含值列表的HashMap,以产生与单个值的所有组合。
示例
hm = [x : [1,2], y : ['a','b'] ]
预期结果为
res = [ [x: 1, y : 'a'],
[x: 1, y : 'b'],
[x: 2, y : 'a'],
[x: 2, y : 'b']
]
到目前为止,我想出了这个方法
println hm.values().combinations().collect{[x:it[0],y:it[1]]}
[[x:1, y:a], [x:2, y:a], [x:1, y:b], [x:2, y:b]]
这是可行的,但取决于HashMap中的键的名称和数量,因此对于
hm = [u : [1,2], w : ['a','b'] , z : ['X','Y']]
我必须重写是为了
println hm.values().combinations().collect{[u:it[0],w:it[1],z:it[2]]}
对于所有的键名称和数字,有没有一个通用的解决方案?
https://stackoverflow.com/questions/54027553
复制相似问题