Kotlin Koans 에서 Introduction 부분의 문제를 풀고 공부한 내용을 정리한 글 입니다.
순서는 컬렉션의 중요한 요소이다. 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
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()
를 사용해서도 작성할 수 있다.
numbers.sortedWith(compareBy { it.length })
이렇게 작성할 수 있다!
val numbers = listOf("one", "two", "three", "four")
println(numbers.reversed())