Kotlin 中的 MutableList 到 MutableMap

MutableList to MutableMap in Kotlin

我有一个属于自定义 class 费用的可变对象列表。 Class 费用具有以下属性:

我想通过遍历上面的列表来创建一个可变映射,结果应该如下所示:

category_1 :类别为 category_1 的所有金额的总和

category_2 :类别为 category_2 的所有金额的总和

...

如果可能的话,我正在寻找单班机。 Kotlin 惯用代码。

这是我目前拥有的:

listOfExpenses.associateTo(expensesByCategory) {it.category to it.amount}

我需要最后一部分:it.amount 以某种方式成为属于某个类别的所有金额的总和。

listOfExpenses是Expense对象列表,expensesByCategory是我要修改的map

我知道这不止一行,但它可以满足您的需要

val expensesByCategory = listOfExpenses
    .groupBy { it.category }
    .mapValues { it.value.sumBy { it.amount } }