gpt4 book ai didi

dictionary - 在 Groovy 中添加两个映射,同时汇总公共(public)键的值

转载 作者:行者123 更新时间:2023-12-01 23:14:03 25 4
gpt4 key购买 nike

我在 Groovy 中有两个 map [a: 1, b: 2][b:1, c:3] 并且想从它们创建一个第三张 map [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作为灵感,您还可以编写一个方法来处理多个 map

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 )

关于dictionary - 在 Groovy 中添加两个映射,同时汇总公共(public)键的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10129837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com