순서는 컬렉션의 중요한 요소이다. Kotlin에서 객체의 순서는 여러가지 방법으로 정의할 수 있다.
비교하여 순서를 정하는 것.
숫자는 우리가 알고있는 방법 그대로 사용한다. 1>0 , -3.4f > -5f
char
이나 String
의 경우 사전식 순서를 따른다. a < b, world < hello
class Version(val major: Int, val minor: Int): Comparable<Version> {
override fun compareTo(other: Version): Int = when {
this.major != other.major -> this.major compareTo other.major // compareTo() in the infix form
this.minor != other.minor -> this.minor compareTo other.minor
else -> 0
}
}
fun main() {
println(Version(1, 2) > Version(1, 3))
println(Version(2, 0) > Version(1, 5))
}
false
true
<aside> 🧺 새로운 배열 생성이 아니라 자체에 바로 저장하고 싶으면 ed를 빼준다. ex) sort()
</aside>
val numbers = listOf("one", "two", "three", "four")
println("Sorted ascending: ${numbers.sorted()}")
println("Sorted descending: ${numbers.sortedDescending()}")
val numbers = listOf("one", "two", "three", "four")
val sortedNumbers = numbers.sortedBy { it.length }
println("Sorted by length ascending: $sortedNumbers")
val sortedByLast = numbers.sortedByDescending { it.last() }
println("Sorted by the last letter descending: $sortedByLast")
결과
Sorted by length ascending: [one, two, four, three]
Sorted by the last letter descending: [four, two, one, three]
위에서 길이에 따라 정렬하는 문인 numbers.sortedBy { it.length }
를 sortedWith()
를 사용해서도 작성할 수 있다.