sortWith所在位置是kotlin.collections.sortWith,其相关用法介绍如下。

用法一

fun <T> Array<out T>.sortWith(comparator: Comparator<in T>)

根据给定的 comparator 指定的顺序对数组进行就地排序。

排序是 stable 。这意味着相等的元素在排序后保持彼此相对的顺序。

用法二

fun <T> Array<out T>.sortWith(
    comparator: Comparator<in T>, 
    fromIndex: Int = 0, 
    toIndex: Int = size)

使用给定的 comparator 对数组中的范围进行就地排序。

排序是 stable 。这意味着相等的元素在排序后保持彼此相对的顺序。

参数

fromIndex- 要排序的范围(包括)的开始,默认为 0。

toIndex- 要排序的范围的末尾(不包括),默认情况下此数组的大小。

异常

IndexOutOfBoundsException- 如果从索引小于零或索引大于此数组的大小。

IllegalArgumentException- 如果从索引大于索引.

用法三

fun <T> MutableList<T>.sortWith(comparator: Comparator<in T>)

根据 comparator 指定的顺序对列表中的元素进行就地排序。

排序是 stable 。这意味着相等的元素在排序后保持彼此相对的顺序。

例子:

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
// non-comparable class
class Person(val firstName: String, val lastName: String) {
    override fun toString(): String = "$firstName $lastName"
}

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

people.sortWith(compareByDescending { it.firstName })

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

输出:

Sweyn Forkbeard, Ragnar Lodbrok, Bjorn Ironside

用法四

fun <T> Array<out T>.sortWith(comparator: Comparator<in T>)

根据给定的 comparator 指定的顺序对数组进行就地排序。

排序是 stable 。这意味着相等的元素在排序后保持彼此相对的顺序。

用法五

fun <T> Array<out T>.sortWith(
    comparator: Comparator<in T>, 
    fromIndex: Int = 0, 
    toIndex: Int = size)

使用给定的 comparator 对数组中的范围进行就地排序。

排序是 stable 。这意味着相等的元素在排序后保持彼此相对的顺序。

参数

fromIndex- 要排序的范围(包括)的开始,默认为 0。

toIndex- 要排序的范围的末尾(不包括),默认情况下此数组的大小。

异常

IndexOutOfBoundsException- 如果从索引小于零或索引大于此数组的大小。

IllegalArgumentException- 如果从索引大于索引.

用法六

fun <T> MutableList<T>.sortWith(comparator: Comparator<in T>)

根据 comparator 指定的顺序对列表中的元素进行就地排序。

排序是 stable 。这意味着相等的元素在排序后保持彼此相对的顺序。

例子:

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
// non-comparable class
class Person(val firstName: String, val lastName: String) {
    override fun toString(): String = "$firstName $lastName"
}

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

people.sortWith(compareByDescending { it.firstName })

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

输出:

Sweyn Forkbeard, Ragnar Lodbrok, Bjorn Ironside