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值。