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

用法一

inline fun <T, R : Comparable<R>> Array<out T>.sortedBy(
    crossinline selector: (T) -> R?
): List<T>
inline fun <T, R : Comparable<R>> Iterable<T>.sortedBy(
    crossinline selector: (T) -> R?
): List<T>

返回根据指定selector 函数返回的值的自然排序顺序排序的所有元素的列表。

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

例子:

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
val list = listOf("aaa", "cc", "bbbb")
val sorted = list.sortedBy { it.length }

println(list) // [aaa, cc, bbbb]
println(sorted) // [cc, aaa, bbbb]
//sampleEnd
}

输出:

[aaa, cc, bbbb]
[cc, aaa, bbbb]

用法二

inline fun <R : Comparable<R>> ByteArray.sortedBy(
    crossinline selector: (Byte) -> R?
): List<Byte>
inline fun <R : Comparable<R>> ShortArray.sortedBy(
    crossinline selector: (Short) -> R?
): List<Short>
inline fun <R : Comparable<R>> IntArray.sortedBy(
    crossinline selector: (Int) -> R?
): List<Int>
inline fun <R : Comparable<R>> LongArray.sortedBy(
    crossinline selector: (Long) -> R?
): List<Long>
inline fun <R : Comparable<R>> FloatArray.sortedBy(
    crossinline selector: (Float) -> R?
): List<Float>
inline fun <R : Comparable<R>> DoubleArray.sortedBy(
    crossinline selector: (Double) -> R?
): List<Double>
inline fun <R : Comparable<R>> BooleanArray.sortedBy(
    crossinline selector: (Boolean) -> R?
): List<Boolean>
inline fun <R : Comparable<R>> CharArray.sortedBy(
    crossinline selector: (Char) -> R?
): List<Char>

返回根据指定selector 函数返回的值的自然排序顺序排序的所有元素的列表。

例子:

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
val list = listOf("aaa", "cc", "bbbb")
val sorted = list.sortedBy { it.length }

println(list) // [aaa, cc, bbbb]
println(sorted) // [cc, aaa, bbbb]
//sampleEnd
}

输出:

[aaa, cc, bbbb]
[cc, aaa, bbbb]