In Kotlin, you usually sort a list with sorted():
val numbers = listOf(5, 2, 8, 1)
val sortedNumbers = numbers.sorted()
println(sortedNumbers) // [1, 2, 5, 8]
sorted() returns a new sorted list and does not change the original list.
For descending order, use sortedDescending():
val numbers = listOf(5, 2, 8, 1)
val sortedDescending = numbers.sortedDescending()
println(sortedDescending) // [8, 5, 2, 1]
For objects, sort by a property with sortedBy():
data class Person(val name: String, val age: Int)
val people = listOf(
Person("Alice", 30),
Person("Bob", 25),
Person("Charlie", 35)
)
val sortedByAge = people.sortedBy { it.age }
println(sortedByAge)
// [Person(name=Bob, age=25), Person(name=Alice, age=30), Person(name=Charlie, age=35)]
If you have a mutable list and want to sort it in place, use sort():
val numbers = mutableListOf(5, 2, 8, 1)
numbers.sort()
println(numbers) // [1, 2, 5, 8]
Quick summary:
sorted()— returns a new ascending listsortedDescending()— returns a new descending listsortedBy { ... }— sorts by a propertysort()— sorts a mutable list in place
