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