java - 在 Kotlin 中:从两个映射中求和一个公共键的两个值的优雅方法是什么?
问题描述
我有一个现有的地图,其中包含简单的整数值。我想通过包含可能键之一的给定映射的值来更新现有映射。
val originMap = mutableMapOf("Foo" to 10, "Bar" to 5)
val additionalMap = mapOf("Foo" to 4)
// questioned logic
assertThat(originMap).containsEntry("Foo", 14)
解决方案
你可以这样做:
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)]
推荐阅读
- javascript - 元素变化时如何执行函数?(没有 setInterval)
- android - 导航组件的多个容器
- java - 如何创建单例枚举映射?
- python - Python 调试器函数不存在
- java - 从其他线程访问while循环布尔,线程安全吗?
- matlab - 检查行是否满足Matlab中的要求
- arduino - 羽绒服 MQTT
- django - `{% include "blah.html" with x="..." only %}`,默认值为 x
- matlab-deployment - 强制编译 Matlab 应用程序以使用运行时而不是 Matlab 许可证
- c++ - 让一个`std::vector
` 从 `std::string` 窃取内存