kotlin集合将一个Map转换为一个新的Map,其中的值由原始值计算得出
我是Kotlin的新手,我试图总结一个查询。 我有一个Map<Int, List<Objects>>
与Int:Month和List<Objects>
在该月的所有操作过程。
我现在要做的是得到一个Map<Int, Long>
Long:所有操作的count()。
我已经通过地图,mapValues,折叠…但没有得到正确的答案。
假设你从下面开始:
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
但是没有理由在一个Long
存储一个Int
值。