如何将Map<String, ArrayList<Int>>
转换为Map<String, Int>
?
我的对象如下:
val mapOfItems = mapOf("x" to listOf(1, 2), "y" to listOf(1, 3), "z" to listOf(2, 3))
我想要一个这样的对象:
val mapOfSummedItems = mapOf("x" to 3, "y" to 4, "z" to 5)
我尝试过:
mapOfItems.map { (key, value) -> SummedItems(key, value.sum()) }
.groupBy { it.key }
data class SummedItems(val key: String, val sum: Int)
那不能给我我想要的Map<String, ArrayList<SummedItems>>
答案 0 :(得分:3)
.map()
上的 Map
生成List
。虽然可以将其设置为List<Pair>
,然后使用associate*
运算符返回到Map
,但也可以直接映射值:
mapOfItems.mapValues { it.value.sum() }