我有一张这样的地图:
"Alex": [Work(workPlace="workPlace", years=1),
Work(workPlace="workPlace", years=4),
Work(workPlace="workPlace", years=5),
Work(workPlace="workPlace", years=1)],
"John": [Work(workPlace="workPlace", years=2),
Work(workPlace="workPlace", years=2),
Work(workPlace="workPlace", years=1),
Work(workPlace="workPlace", years=6)]
求和值的最佳方法是什么?
例如,我如何总结亚历克斯和约翰的所有岁月?
答案 0 :(得分:2)
我认为您主要是在寻找mapValues
函数,该函数可让您变换地图的值,同时保留其键。您可以这样使用:
val people: Map<String, List<Work>> = ...
val peopleToSumOfYears: Map<String, Int> =
people.mapValues { (name, works) -> works.sumBy { it.years } }