Как сделать сортировку в коллекции объектов по какому-то полю

«Как сделать сортировку в коллекции объектов по какому-то полю» — вопрос из категории Java, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для сортировки коллекции объектов в Kotlin можно использовать sortedBy (для неизменяемого результата) или sortBy (для сортировки изменяемой коллекции):

data class Person(val name: String, val age: Int)

val people = listOf(
    Person("Alice", 29),
    Person("Bob", 31),
    Person("Charlie", 25)
)

// Сортировка по возрасту (возвращает новую коллекцию)
val sortedByAge = people.sortedBy { it.age }

// Сортировка по имени в обратном порядке
val sortedByNameDesc = people.sortedByDescending { it.name }

// Для изменяемых коллекций (MutableList)
val mutablePeople = people.toMutableList()
mutablePeople.sortBy { it.age }

Для сложных условий сортировки используйте sortedWith с компаратором:

val customSorted = people.sortedWith(compareBy({ it.age }, { it.name }))