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 函数指定的顺序对数组进行就地排序。