Kotlin - 如何添加列表中重复元素的计数以生成另一个列表
Kotlin - How to add counts of duplicate elements in a list to generate another list
我有一个简单的问题,但我似乎无法使用 Kotlin 中的预定义方法来执行此操作。这就是我要解决的问题。
data class A(val id: Int, val amount: Int)
private List<A> generateTotal(listOfA : List<A>)
列表中有几个重复的 id
。例如:
A(1, 2), A(1,3), A(2,1)
generateTotal
应该 return A(1, 5)
和 A(2,1)
上面列表中的 2 个元素已经相加。
使用 Kotlin 的一些现有函数是否可行?
谢谢
这应该可以做到。第一组按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)) }
我有一个简单的问题,但我似乎无法使用 Kotlin 中的预定义方法来执行此操作。这就是我要解决的问题。
data class A(val id: Int, val amount: Int)
private List<A> generateTotal(listOfA : List<A>)
列表中有几个重复的 id
。例如:
A(1, 2), A(1,3), A(2,1)
generateTotal
应该 return A(1, 5)
和 A(2,1)
上面列表中的 2 个元素已经相加。
使用 Kotlin 的一些现有函数是否可行?
谢谢
这应该可以做到。第一组按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)) }