0

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

  • 数量
  • 类别

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

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

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

...

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

这是我到目前为止所拥有的:

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

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

listOfExpenses 是 Expense 对象的列表,expenseByCategory 是我要修改的地图

4

1 回答 1

1

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

val expensesByCategory = listOfExpenses
    .groupBy { it.category }
    .mapValues { it.value.sumBy { it.amount } }
于 2021-01-26T22:00:16.847 回答