지정된 비교기에 따라 정렬된 모든 요소의 목록을 반환합니다. 정렬이 안정적입니다. 이는 동일한 요소가 정렬 후에도 서로 상대적인 순서를 유지함을 의미합니다.
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]
'코틀린 > [Ordering] 정렬 작업' 카테고리의 다른 글
[Kotlin][Comparator] compareBy (0) | 2024.09.05 |
---|---|
[Kotlin][Collection] sortedBy / sortedByDescending (0) | 2024.08.23 |
[Kotlin][Collection] sorted / sortedDescending (0) | 2024.08.23 |