sort所在位置是kotlin.collections.sort,其相關用法介紹如下。

用法一

fun IntArray.sort()
fun LongArray.sort()
fun ByteArray.sort()
fun ShortArray.sort()
fun DoubleArray.sort()
fun FloatArray.sort()
fun CharArray.sort()

就地對數組進行排序。

例子:

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
val intArray = intArrayOf(4, 3, 2, 1)

// before sorting
println(intArray.joinToString()) // 4, 3, 2, 1

intArray.sort()

// after sorting
println(intArray.joinToString()) // 1, 2, 3, 4
//sampleEnd
}

輸出:

4, 3, 2, 1
1, 2, 3, 4

用法二

fun <T : Comparable<T>> Array<out T>.sort()

根據元素的自然順序對數組進行就地排序。

排序是 stable 。這意味著相等的元素在排序後保持彼此相對的順序。

例子:

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
class Person(val firstName: String, val lastName: String) : Comparable<Person> {
    override fun compareTo(other: Person): Int = this.lastName.compareTo(other.lastName)
    override fun toString(): String = "$firstName $lastName"
}

val people = arrayOf(
    Person("Ragnar", "Lodbrok"),
    Person("Bjorn", "Ironside"),
    Person("Sweyn", "Forkbeard")
)

// before sorting
println(people.joinToString()) // Ragnar Lodbrok, Bjorn Ironside, Sweyn Forkbeard

people.sort()

// after sorting
println(people.joinToString()) // Sweyn Forkbeard, Bjorn Ironside, Ragnar Lodbrok
//sampleEnd
}

輸出:

Ragnar Lodbrok, Bjorn Ironside, Sweyn Forkbeard
Sweyn Forkbeard, Bjorn Ironside, Ragnar Lodbrok

用法三

fun <T : Comparable<T>> Array<out T>.sort(
    fromIndex: Int = 0, 
    toIndex: Int = size)

就地對數組中的範圍進行排序。

排序是 stable 。這意味著相等的元素在排序後保持彼此相對的順序。

例子:

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
class Person(val firstName: String, val lastName: String) : Comparable<Person> {
    override fun compareTo(other: Person): Int = this.lastName.compareTo(other.lastName)
    override fun toString(): String = "$firstName $lastName"
}

val people = arrayOf(
    Person("Ragnar", "Lodbrok"),
    Person("Bjorn", "Ironside"),
    Person("Sweyn", "Forkbeard")
)

// before sorting
println(people.joinToString()) // Ragnar Lodbrok, Bjorn Ironside, Sweyn Forkbeard

people.sort(0, 2)

// after sorting
println(people.joinToString()) // Bjorn Ironside, Ragnar Lodbrok, Sweyn Forkbeard
//sampleEnd
}

輸出:

Ragnar Lodbrok, Bjorn Ironside, Sweyn Forkbeard
Bjorn Ironside, Ragnar Lodbrok, Sweyn Forkbeard

參數

fromIndex- 要排序的範圍(包括)的開始,默認為 0。

toIndex- 要排序的範圍的末尾(不包括),默認情況下此數組的大小。

異常

IndexOutOfBoundsException- 如果從索引小於零或索引大於此數組的大小。

IllegalArgumentException- 如果從索引大於索引.

用法四

fun ByteArray.sort(fromIndex: Int = 0, toIndex: Int = size)
fun ShortArray.sort(fromIndex: Int = 0, toIndex: Int = size)
fun IntArray.sort(fromIndex: Int = 0, toIndex: Int = size)
fun LongArray.sort(fromIndex: Int = 0, toIndex: Int = size)
fun FloatArray.sort(fromIndex: Int = 0, toIndex: Int = size)
fun DoubleArray.sort(fromIndex: Int = 0, toIndex: Int = size)
fun CharArray.sort(fromIndex: Int = 0, toIndex: Int = size)

就地對數組中的範圍進行排序。

例子:

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
val intArray = intArrayOf(4, 3, 2, 1)

// before sorting
println(intArray.joinToString()) // 4, 3, 2, 1

intArray.sort(0, 3)

// after sorting
println(intArray.joinToString()) // 2, 3, 4, 1
//sampleEnd
}

輸出:

4, 3, 2, 1
2, 3, 4, 1

參數

fromIndex- 要排序的範圍(包括)的開始,默認為 0。

toIndex- 要排序的範圍的末尾(不包括),默認情況下此數組的大小。

異常

IndexOutOfBoundsException- 如果從索引小於零或索引大於此數組的大小。

IllegalArgumentException- 如果從索引大於索引.

用法五

@ExperimentalUnsignedTypes fun UIntArray.sort()
@ExperimentalUnsignedTypes fun ULongArray.sort()
@ExperimentalUnsignedTypes fun UByteArray.sort()
@ExperimentalUnsignedTypes fun UShortArray.sort()

就地對數組進行排序。

例子:

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
val intArray = intArrayOf(4, 3, 2, 1)

// before sorting
println(intArray.joinToString()) // 4, 3, 2, 1

intArray.sort()

// after sorting
println(intArray.joinToString()) // 1, 2, 3, 4
//sampleEnd
}

輸出:

4, 3, 2, 1
1, 2, 3, 4

用法六

@ExperimentalUnsignedTypes fun UIntArray.sort(
    fromIndex: Int = 0, 
    toIndex: Int = size)
@ExperimentalUnsignedTypes fun ULongArray.sort(
    fromIndex: Int = 0, 
    toIndex: Int = size)
@ExperimentalUnsignedTypes fun UByteArray.sort(
    fromIndex: Int = 0, 
    toIndex: Int = size)
@ExperimentalUnsignedTypes fun UShortArray.sort(
    fromIndex: Int = 0, 
    toIndex: Int = size)

就地對數組中的範圍進行排序。

例子:

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
val intArray = intArrayOf(4, 3, 2, 1)

// before sorting
println(intArray.joinToString()) // 4, 3, 2, 1

intArray.sort(0, 3)

// after sorting
println(intArray.joinToString()) // 2, 3, 4, 1
//sampleEnd
}

輸出:

4, 3, 2, 1
2, 3, 4, 1

參數

fromIndex- 要排序的範圍(包括)的開始,默認為 0。

toIndex- 要排序的範圍的末尾(不包括),默認情況下此數組的大小。

異常

IndexOutOfBoundsException- 如果從索引小於零或索引大於此數組的大小。

IllegalArgumentException- 如果從索引大於索引.

用法七

fun <T : Comparable<T>> MutableList<T>.sort()

根據自然排序順序對列表中的元素進行就地排序。

排序是 stable 。這意味著相等的元素在排序後保持彼此相對的順序。

例子:

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
val mutableList = mutableListOf(4, 3, 2, 1)

// before sorting
println(mutableList.joinToString()) // 4, 3, 2, 1

mutableList.sort()

// after sorting
println(mutableList.joinToString()) // 1, 2, 3, 4
//sampleEnd
}

輸出:

4, 3, 2, 1
1, 2, 3, 4

用法八

fun <T> MutableList<T>.sort(comparator: Comparator<in T>)
已棄用:請改用 sortWith(comarator)。
inline fun <T> MutableList<T>.sort(comparison: (T, T) -> Int)
已棄用:使用 sortWith(Comparator(comparison)) 代替。

用法九

@DeprecatedSinceKotlin("1.6") fun <T> Array<out T>.sort(
    comparison: (a: T, b: T) -> Int)
已棄用:改用 sortWith

根據給定的 comparison 函數指定的順序對數組進行就地排序。

排序是 stable 。這意味著相等的元素在排序後保持彼此相對的順序。

用法十

@DeprecatedSinceKotlin("1.6") inline fun ByteArray.sort(
    noinline comparison: (a: Byte, b: Byte) -> Int)
已棄用:使用標準庫中的其他排序函數
@DeprecatedSinceKotlin("1.6") inline fun ShortArray.sort(
    noinline comparison: (a: Short, b: Short) -> Int)
已棄用:使用標準庫中的其他排序函數
@DeprecatedSinceKotlin("1.6") inline fun IntArray.sort(
    noinline comparison: (a: Int, b: Int) -> Int)
已棄用:使用標準庫中的其他排序函數
@DeprecatedSinceKotlin("1.6") inline fun LongArray.sort(
    noinline comparison: (a: Long, b: Long) -> Int)
已棄用:使用標準庫中的其他排序函數
@DeprecatedSinceKotlin("1.6") inline fun FloatArray.sort(
    noinline comparison: (a: Float, b: Float) -> Int)
已棄用:使用標準庫中的其他排序函數
@DeprecatedSinceKotlin("1.6") inline fun DoubleArray.sort(
    noinline comparison: (a: Double, b: Double) -> Int)
已棄用:使用標準庫中的其他排序函數
@DeprecatedSinceKotlin("1.6") inline fun CharArray.sort(
    noinline comparison: (a: Char, b: Char) -> Int)
已棄用:使用標準庫中的其他排序函數

根據給定的 comparison 函數指定的順序對數組進行就地排序。