sortedBy

Common
JVM
JS
Native
1.0
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>

Returns a list of all elements sorted according to natural sort order of the value returned by specified selector function.

The sort is stable. It means that equal elements preserve their order relative to each other after sorting.

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
}
Common
JVM
JS
Native
1.0
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>

Returns a list of all elements sorted according to natural sort order of the value returned by specified selector function.

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
}