sortedBy
inline fun <T, R : Comparable<R>> Array<out T>.sortedBy(crossinline selector: (T) -> R?): List<T>(source)
inline fun <T, R : Comparable<R>> Iterable<T>.sortedBy(crossinline selector: (T) -> R?): List<T>(source)
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.
Since Kotlin
1.0Samples
import kotlin.test.*
fun main() {
//sampleStart
val list = listOf("aaa", "cc", "bbbb")
val sorted = list.sortedBy { it.length }
println(list) // [aaa, cc, bbbb]
println(sorted) // [cc, aaa, bbbb]
//sampleEnd
}
inline fun <R : Comparable<R>> ByteArray.sortedBy(crossinline selector: (Byte) -> R?): List<Byte>(source)
inline fun <R : Comparable<R>> ShortArray.sortedBy(crossinline selector: (Short) -> R?): List<Short>(source)
inline fun <R : Comparable<R>> IntArray.sortedBy(crossinline selector: (Int) -> R?): List<Int>(source)
inline fun <R : Comparable<R>> LongArray.sortedBy(crossinline selector: (Long) -> R?): List<Long>(source)
inline fun <R : Comparable<R>> FloatArray.sortedBy(crossinline selector: (Float) -> R?): List<Float>(source)
inline fun <R : Comparable<R>> DoubleArray.sortedBy(crossinline selector: (Double) -> R?): List<Double>(source)
inline fun <R : Comparable<R>> BooleanArray.sortedBy(crossinline selector: (Boolean) -> R?): List<Boolean>(source)
inline fun <R : Comparable<R>> CharArray.sortedBy(crossinline selector: (Char) -> R?): List<Char>(source)
Returns a list of all elements sorted according to natural sort order of the value returned by specified selector function.
Since Kotlin
1.0Samples
import kotlin.test.*
fun main() {
//sampleStart
val list = listOf("aaa", "cc", "bbbb")
val sorted = list.sortedBy { it.length }
println(list) // [aaa, cc, bbbb]
println(sorted) // [cc, aaa, bbbb]
//sampleEnd
}