如何将地图转换为地图kotlin



如何将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>>

Map上的.map()生成List。虽然您可以将其设为List<Pair>,然后使用associate*运算符返回到Map,但您也可以直接映射值:

mapOfItems.mapValues { it.value.sum() }

最新更新