我是Kotlin的新手,我试图总结一个查询。 我有一个Map<Int, List<Objects>>
Int:Month和List<Objects>
该月的所有操作过程。kotlin集合将地图转换为新的地图,其值从原始计算
我现在要做的是得到一个Map<Int, Long>
其中Long:所有操作的count()。
我已经通过map,mapValues,fold ...但没有得到正确的答案。
我是Kotlin的新手,我试图总结一个查询。 我有一个Map<Int, List<Objects>>
Int:Month和List<Objects>
该月的所有操作过程。kotlin集合将地图转换为新的地图,其值从原始计算
我现在要做的是得到一个Map<Int, Long>
其中Long:所有操作的count()。
我已经通过map,mapValues,fold ...但没有得到正确的答案。
假设你开始:
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
值。
好吧,傻我...我只是没有把它value.value.size里面mapValue。谢谢! – Nacho
是不是'mapValues'正是你想要的?果然,它给你'Entry'而不仅仅是价值,但这只是一种方法调用比理想更长的时间。 –
您应该显示您尝试过的代码以及为什么失败,因为您实际上提到了一个工作解决方案,因此您一定几乎已经在那里。 –