我有一个包含对象列表的数组列表,如下所示:
[Activities(id=3116, studentID=5c1a7986c98da061141475b4, actionID=1234, actionName=hohoho, totalPoints=100),
Activities(id=3117, studentID=5c1a7986c98da061141475b4, actionID=4321, actionName=lalala, totalPoints=7),
Activities(id=3118, studentID=5c1a7986c98da061141475b4, actionID=4321, actionName=lalala, totalPoints=4),
Activities(id=3119, studentID=5c1a7986c98da061141475b4, actionID=1234, actionName=hohoho, totalPoints=10)]
Run Code Online (Sandbox Code Playgroud)
我可以使用任何 kotlin 函数来对上面的totalPoints
基于组求和吗?actionID
如果上面的 arraylist 在 sql 中,我可以做类似的事情SELECT actionID, SUM(totalPoints) FROM activities GROUP BY actionID
,它将返回
actionID totalPoints
1234 110
4321 11
Run Code Online (Sandbox Code Playgroud)
如果您有 的列表,那么您可以获得分组activities
的总和, 如下所示totalPoints
actionID
val result = activities
.groupBy { it.actionID }
.mapValues { entry -> entry.value.sumBy { it.totalPoints } }
Run Code Online (Sandbox Code Playgroud)
result
将是一个包含作为actionID
其键和值作为总和的映射totalPoints
各自的总和的映射actionID
打印result
会给
{1234=110, 4321=11}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2732 次 |
最近记录: |