我想将地图列表(实际上是具有jeft连接多对多关系表的查询的结果列表)合并到一个地图,如果所有地图中的地图均相等,则该地图将包含一个key:value对和key:[值列表],以防某个键的值不同。例如,有一个地图列表:
[
[name:john, title:senior, access:floor1],
[name:john, title:senior, access:floor2]
]
到地图
[name:john, title:senior, access:[floor1, floor2]]
因此,给出了地图的输入列表:
def input = [
[name:'john', title:'senior', access:'floor1'],
[name:'john', title:'senior', access:'floor2'],
[name:'carol', title:'senior', access:'floor2']
]
我们可以按前两个分组(同样,作为地图):
input.groupBy { [name: it.name, title: it.title] }
这给了我们:
[
[name:john, title:senior]:[
[name:john, title:senior, access:floor1],
[name:john, title:senior, access:floor2]
],
[name:carol, title:senior]:[
[name:carol, title:senior, access:floor2]
]
]
然后,我们可以按照所需的输出形式收集它们,从而得到:
input.groupBy { [name: it.name, title: it.title] }.collect { k, v ->
k + [access: v.access]
}
结果如下:
[
[name:john, title:senior, access:[floor1, floor2]],
[name:carol, title:senior, access:[floor2]]
]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句