kotlin集合将Map转换为新的Map,其值使用原始值计算

时间:2017-05-24 16:24:25

标签: collections kotlin

我是Kotlin的新手,我正在尝试总结一个查询。 我有Map<Int, List<Objects>>的Int:Month和List<Objects>那个月的所有操作流程。

我现在要做的是获得一个Map<Int, Long>,其中Long:所有操作的count()。

我已经通过map,mapValues,折叠...但没有得到正确的答案。

1 个答案:

答案 0 :(得分:2)

假设您从:

开始
val monthOfOperations: Map<Int, List<Operation>>

然后你可以简单地说:

val monthOfOperationCounts = monthOfOperations.mapValues { it.value.size }
// result:  Map<Int, Int> of Month to Count of Operations

请注意,结果为Map<Int, Int>,因为集合大小为Int而非Long。如果真的需要Long

val monthOfOperationCounts = monthOfOperations.mapValues { it.value.size.toLong() }
// result:  Map<Int, Long> of Month to Count of Operations

但没有理由在Int中存储Long值。