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

[Kotlin][Collection] sortedWith

by jinwo_o 2024. 9. 5.

지정된 비교기에 따라 정렬된 모든 요소의 목록을 반환합니다. 정렬이 안정적입니다. 이는 동일한 요소가 정렬 후에도 서로 상대적인 순서를 유지함을 의미합니다.

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 words = listOf("apple", "banana", "kiwi", "cherry", "blueberry", "avocado")
val sortedWords = words.sortedWith(compareBy({ it.length }, { it }))
println(sortedWords)  // [kiwi, apple, cherry, banana, avocado, blueberry]

 

 

sortedWith - Kotlin Programming Language

 

kotlinlang.org