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