在Kotlin中按属性和最大值过滤重复项

时间:2019-10-07 06:51:15

标签: android kotlin

快速(而且很可能是)简单的问题。

给出以下List<Job>

Job(requesterId: 1, offer: 100)
Job(requesterId: 1, offer: 150)
Job(requesterId: 1, offer: 200)
Job(requesterId: 2, offer: 100)
Job(requesterId: 3, offer: 100)
Job(requesterId: 3, offer: 110)

我希望能够基于requesterId以及最高offer来过滤其重复项,以便最终得到一个List<Job>,其中每个{ {1}}像这样:

requesterId

任何帮助将不胜感激!

谢谢

1 个答案:

答案 0 :(得分:3)

val sortedList = list
    .groupBy { it.requesterId }
    .map { it.value.maxBy { it.offer } }