我有一個簡單的問題,但我似乎無法在 Kotlin 中使用預定義的方法來做到這一點。這是我要解決的問題。
data class A(val id: Int, val amount: Int)
private List<A> generateTotal(listOfA : List<A>)
該串列中有幾個重復id的 s。例如 :
A(1, 2), A(1,3), A(2,1)
generateTotal應該回傳A(1, 5)并且A(2,1)上面串列中的 2 個元素已被求和。
使用 Kotlin 的一些現有功能是否可行?
謝謝
uj5u.com熱心網友回復:
這應該這樣做。第一個按 ID 分組。結果 Map 的值是具有相同 ID 的專案串列,因此我們可以將這些串列映射為單個專案。
private fun generateTotal(listOfA: List<A>): List<A> =
listOfA.groupBy(A::id)
.values.map { A(it[0].id, it.sumOf(A::amount)) }
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/411475.html
標籤:
