字典 – 在Groovy中添加两个地图,同时总结公共密钥的值
发布时间:2020-12-14 16:37:25 所属栏目:大数据 来源:网络整理
导读:我在Groovy [a:1,b:2]和[b:1,c:3]中有两张地图,并希望从他们创建第三张地图[a:1,b:3,c:3]。有没有一个Groovy命令呢? 编辑:请注意,如果键是相同的,则第三个地图中的值是前两个地图中的值的总和。 谢谢 解决方法 另一个解决办法是: def m1 =
我在Groovy [a:1,b:2]和[b:1,c:3]中有两张地图,并希望从他们创建第三张地图[a:1,b:3,c:3]。有没有一个Groovy命令呢?
编辑:请注意,如果键是相同的,则第三个地图中的值是前两个地图中的值的总和。 谢谢 解决方法
另一个解决办法是:
def m1 = [ a:1,b:2 ] def m2 = [ b:1,c:3 ] def newMap = [m1,m2]*.keySet().flatten().unique().collectEntries { [ (it): [m1,m2]*.get( it ).findAll().sum() ] } 以epidemian’s answer为灵感,您还可以编写一个方法来处理多个地图 def m1 = [a: 1,b: 2] def m2 = [b: 1,c: 3] def combine( Map... m ) { m.collectMany { it.entrySet() }.inject( [:] ) { result,e -> result << [ (e.key):e.value + ( result[ e.key ] ?: 0 ) ] } } def newMap = combine( m1,m2 ) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |