在 Kotlin 中:将两个映射中公共键的两个值相加的优雅方法是什么?

xet*_*a11 5 java dictionary kotlin

我有一个现有的映射,其中包含简单的整数值。我想通过包含可能的键之一的给定映射的值来更新现有映射。

val originMap = mutableMapOf("Foo" to 10, "Bar" to 5)
val additionalMap = mapOf("Foo" to 4)

// questioned logic

assertThat(originMap).containsEntry("Foo", 14)
Run Code Online (Sandbox Code Playgroud)

Wil*_*zel 6

你可以这样做:

val mergedMap = (originMap.toList() + additionalMap.toList())
        .groupBy({ it.first }, { it.second })
        .map { (key, values) -> key to values.sum() }
        .toMap()

println(mergedMap) // [(Foo, 14), (Bar, 5)]
Run Code Online (Sandbox Code Playgroud)

在这里尝试一下!