如何在groovy中加入地图列表

时间:2017-08-21 07:58:35

标签: groovy

如果我在groovy中有两个地图列表......

def x = [ [a:1, b:2], [a:1, b:3], [a:2, b:4] ]
​def y = ​[ [f:10, b:2, g:7], [f:100, b:3, g:8], [f:20, b:4, g:9] ]

如何根据特定属性加入它们。在上面的示例中,b

的值

期望的结果是......

[a:1, b:2, f:10, g:7]
[a:1, b:3, f:100, g:8]
[a:2, b:4, f:20, g:9]

我试过了,但这并不是我追求的目标。

def z = (x + y).groupBy { it.b }
z.each{ k, v -> println "${k}:${v}" }

感谢

2 个答案:

答案 0 :(得分:2)

您应该能够通过以下方式获得所需的结果:

tHashMap

您可以在线快速尝试 demo

答案 1 :(得分:2)

你不能这样做:

[x,y].transpose().collect { a, b -> a + b }