Фильтр дубликатов по свойству и максимальному значению в Котлине - PullRequest
0 голосов
/ 07 октября 2019

Быстрый (и, скорее всего) простой вопрос.

Учитывая следующее 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>, содержащее самые высокие предложения за requesterId, например:

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

Любая помощь будет оценена!

Спасибо

1 Ответ

3 голосов
/ 07 октября 2019
val sortedList = list
    .groupBy { it.requesterId }
    .map { it.value.maxBy { it.offer } }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...