Как отсортировать список объектов по трем полям, если список уже отсортирован по двум из них? - PullRequest
0 голосов
/ 10 марта 2020

Предположим, у нас есть students: List<Student> и Student имеет три поля: schoolId, name, age.

Мне нужно отсортировать этот список по трем полям, в SQL я бы написал ORDER BY schoolId, name, age. Однако мой список students уже отсортирован по schoolId, name. Теперь мне нужно только добавить сортировку по третьему полю age, чтобы отсортировать этот список по schoolId, name, age.

Кто-нибудь может сказать, как это сделать в kotlin?

Ответы [ 2 ]

3 голосов
/ 10 марта 2020

Неважно, список уже частично отсортирован или нет. Вы должны просто использовать стандартную функцию сортировки:

val sortedStudents = students.sortedWith(compareBy(Student::schoolId, Student::name, Student::age))
1 голос
/ 10 марта 2020

Используйте что-то вроде этого:

val sortedList = students.sortedWith(
    compareBy({ it.schoolId}, { it.name}, { it.age})
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...