我有一个需要转换/映射到SortedMap<String, Double>的SortedMap<String, MutableList<Double>>类型。第一个类型中的MutableList<Double>表示一个费用列表,现在我想将所有这些费用相加为一个总数,并使用该总数。两种类型的String对象保持不变。
目前我有这样的实现:
val sortedEntryMap = dateToEntriesMap.toSortedMap() // SortedMap<String, MutableList<Double>>
val dailyEntryList = mutableListOf<Pair<String, Double>>()
for ( dailyEntry in sortedEntryMap ) {
var dailyTotal = 0.0
for (entry in dailyEntry.value ) {
dailyTotal += entry
}
dailyEntryList.add(Pair(dailyEntry.key, dailyTotal))
}但我希望有一些更干净(更多Kotlin)的实现。类似于:dailyEntryList = sortedEntryMap.map { something, something }地图()方法可能不是要使用的方法,但我只是在想,是否有一种方法可以在一行代码中做到这一点?
发布于 2020-12-08 07:59:56
你可以直接做
sortedEntryMap.mapValues { (_, v) -> v.sum() }获取具有相同键和转换值的映射
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/map-values.html
https://stackoverflow.com/questions/65190271
复制相似问题