본문 바로가기
코틀린/[Ordering] 정렬 작업

[Kotlin][Collection] sorted / sortedDescending

by jinwo_o 2024. 8. 23.

기본 정렬 순서에 따라 정렬된 모든 요소의 목록을 반환합니다.

정렬이 안정적입니다. 이는 동일한 요소가 정렬 후에도 서로 상대적인 순서를 유지함을 의미합니다.

public fun <T : Comparable<T>> Iterable<T>.sorted(): List<T> {
    if (this is Collection) {
        if (size <= 1) return this.toList()
        @Suppress("UNCHECKED_CAST")
        return (toTypedArray<Comparable<T>>() as Array<T>).apply { sort() }.asList()
    }
    return toMutableList().apply { sort() }
}


val list = listOf(4, 3, 2, 1)
print(list.sorted()) // [1, 2, 3, 4]

 

자연 정렬 순서에 따라 내림차순으로 정렬된 모든 요소의 목록을 반환합니다.

정렬이 안정적입니다. 이는 동일한 요소가 정렬 후에도 서로 상대적인 순서를 유지함을 의미합니다.

public fun <T : Comparable<T>> Iterable<T>.sortedDescending(): List<T> {
    return sortedWith(reverseOrder())
}

public fun <T> Iterable<T>.sortedWith(comparator: Comparator<in T>): List<T> {
    if (this is Collection) {
       if (size <= 1) return this.toList()
       @Suppress("UNCHECKED_CAST")
       return (toTypedArray<Any?>() as Array<T>).apply { sortWith(comparator) }.asList()
    }
    return toMutableList().apply { sortWith(comparator) }
}

public actual fun <T> MutableList<T>.sortWith(comparator: Comparator<in T>): Unit {
    if (size > 1) java.util.Collections.sort(this, comparator)
}

val list = listOf(1, 2, 3, 4)
print(list.sortedDescending()) // [4, 3, 2, 1]

 

sorted - Kotlin Programming Language

 

kotlinlang.org

 

sortedDescending - Kotlin Programming Language

 

kotlinlang.org