sort

Common
JVM
JS
Native
1.0

Sorts the array in-place.

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
val intArray = intArrayOf(4, 3, 2, 1)

// before sorting
println(intArray.joinToString()) // 4, 3, 2, 1

intArray.sort()

// after sorting
println(intArray.joinToString()) // 1, 2, 3, 4
//sampleEnd
}
Common
JVM
JS
Native
1.0

Sorts the array in-place according to the natural order of its elements.

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
class Person(val firstName: String, val lastName: String) : Comparable<Person> {
    override fun compareTo(other: Person): Int = this.lastName.compareTo(other.lastName)
    override fun toString(): String = "$firstName $lastName"
}

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

// before sorting
println(people.joinToString()) // Ragnar Lodbrok, Bjorn Ironside, Sweyn Forkbeard

people.sort()

// after sorting
println(people.joinToString()) // Sweyn Forkbeard, Bjorn Ironside, Ragnar Lodbrok
//sampleEnd
}
Common
JVM
JS
Native
1.4
fun <T : Comparable<T>> Array<out T>.sort(
    fromIndex: Int = 0,
    toIndex: Int = size)

(Common source) (JVM source) (JS source) (Native source)

Sorts a range in the array in-place.

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
class Person(val firstName: String, val lastName: String) : Comparable<Person> {
    override fun compareTo(other: Person): Int = this.lastName.compareTo(other.lastName)
    override fun toString(): String = "$firstName $lastName"
}

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

// before sorting
println(people.joinToString()) // Ragnar Lodbrok, Bjorn Ironside, Sweyn Forkbeard

people.sort(0, 2)

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

Parameters

fromIndex - the start of the range (inclusive) to sort, 0 by default.

toIndex - the end of the range (exclusive) to sort, size of this array by default.

Exceptions

IndexOutOfBoundsException - if fromIndex is less than zero or toIndex is greater than the size of this array.

IllegalArgumentException - if fromIndex is greater than toIndex.

Common
JVM
JS
Native
1.0
fun ByteArray.sort(fromIndex: Int = 0, toIndex: Int = size)
(Common source) (JVM source) (JS source) (Native source)
fun ShortArray.sort(fromIndex: Int = 0, toIndex: Int = size)
(Common source) (JVM source) (JS source) (Native source)
fun IntArray.sort(fromIndex: Int = 0, toIndex: Int = size)
(Common source) (JVM source) (JS source) (Native source)
fun LongArray.sort(fromIndex: Int = 0, toIndex: Int = size)
(Common source) (JVM source) (JS source) (Native source)
fun FloatArray.sort(fromIndex: Int = 0, toIndex: Int = size)
(Common source) (JVM source) (JS source) (Native source)
fun DoubleArray.sort(fromIndex: Int = 0, toIndex: Int = size)
(Common source) (JVM source) (JS source) (Native source)
fun CharArray.sort(fromIndex: Int = 0, toIndex: Int = size)
(Common source) (JVM source) (JS source) (Native source)

Sorts a range in the array in-place.

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
val intArray = intArrayOf(4, 3, 2, 1)

// before sorting
println(intArray.joinToString()) // 4, 3, 2, 1

intArray.sort(0, 3)

// after sorting
println(intArray.joinToString()) // 2, 3, 4, 1
//sampleEnd
}

Parameters

fromIndex - the start of the range (inclusive) to sort, 0 by default.

toIndex - the end of the range (exclusive) to sort, size of this array by default.

Exceptions

IndexOutOfBoundsException - if fromIndex is less than zero or toIndex is greater than the size of this array.

IllegalArgumentException - if fromIndex is greater than toIndex.

Common
JVM
JS
Native
1.3
@ExperimentalUnsignedTypes fun UIntArray.sort()
(source)
@ExperimentalUnsignedTypes fun ULongArray.sort()
(source)
@ExperimentalUnsignedTypes fun UByteArray.sort()
(source)
@ExperimentalUnsignedTypes fun UShortArray.sort()
(source)

Sorts the array in-place.

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
val intArray = intArrayOf(4, 3, 2, 1)

// before sorting
println(intArray.joinToString()) // 4, 3, 2, 1

intArray.sort()

// after sorting
println(intArray.joinToString()) // 1, 2, 3, 4
//sampleEnd
}
Common
JVM
JS
Native
1.4
@ExperimentalUnsignedTypes fun UIntArray.sort(
    fromIndex: Int = 0,
    toIndex: Int = size)

(source)
@ExperimentalUnsignedTypes fun ULongArray.sort(
    fromIndex: Int = 0,
    toIndex: Int = size)

(source)
@ExperimentalUnsignedTypes fun UByteArray.sort(
    fromIndex: Int = 0,
    toIndex: Int = size)

(source)
@ExperimentalUnsignedTypes fun UShortArray.sort(
    fromIndex: Int = 0,
    toIndex: Int = size)

(source)

Sorts a range in the array in-place.

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
val intArray = intArrayOf(4, 3, 2, 1)

// before sorting
println(intArray.joinToString()) // 4, 3, 2, 1

intArray.sort(0, 3)

// after sorting
println(intArray.joinToString()) // 2, 3, 4, 1
//sampleEnd
}

Parameters

fromIndex - the start of the range (inclusive) to sort, 0 by default.

toIndex - the end of the range (exclusive) to sort, size of this array by default.

Exceptions

IndexOutOfBoundsException - if fromIndex is less than zero or toIndex is greater than the size of this array.

IllegalArgumentException - if fromIndex is greater than toIndex.

Common
JVM
JS
Native
1.0

Sorts elements in the list in-place according to their natural sort order.

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 mutableList = mutableListOf(4, 3, 2, 1)

// before sorting
println(mutableList.joinToString()) // 4, 3, 2, 1

mutableList.sort()

// after sorting
println(mutableList.joinToString()) // 1, 2, 3, 4
//sampleEnd
}
JVM
1.0
fun <T> MutableList<T>.sort(comparator: Comparator<in T>)
(source)
Deprecated: Use sortWith(comparator) instead.
inline fun <T> MutableList<T>.sort(comparison: (T, T) -> Int)
(source)
Deprecated: Use sortWith(Comparator(comparison)) instead.
JS
1.1
@DeprecatedSinceKotlin("1.6") fun <T> Array<out T>.sort(
    comparison: (a: T, b: T) -> Int)

(source)
Deprecated: Use sortWith instead

Sorts the array in-place according to the order specified by the given comparison function.

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

JS
1.1
@DeprecatedSinceKotlin("1.6") inline fun ByteArray.sort(
    noinline comparison: (a: Byte, b: Byte) -> Int)

(source)
Deprecated: Use other sorting functions from the Standard Library
@DeprecatedSinceKotlin("1.6") inline fun ShortArray.sort(
    noinline comparison: (a: Short, b: Short) -> Int)

(source)
Deprecated: Use other sorting functions from the Standard Library
@DeprecatedSinceKotlin("1.6") inline fun IntArray.sort(
    noinline comparison: (a: Int, b: Int) -> Int)

(source)
Deprecated: Use other sorting functions from the Standard Library
@DeprecatedSinceKotlin("1.6") inline fun LongArray.sort(
    noinline comparison: (a: Long, b: Long) -> Int)

(source)
Deprecated: Use other sorting functions from the Standard Library
@DeprecatedSinceKotlin("1.6") inline fun FloatArray.sort(
    noinline comparison: (a: Float, b: Float) -> Int)

(source)
Deprecated: Use other sorting functions from the Standard Library
@DeprecatedSinceKotlin("1.6") inline fun DoubleArray.sort(
    noinline comparison: (a: Double, b: Double) -> Int)

(source)
Deprecated: Use other sorting functions from the Standard Library
@DeprecatedSinceKotlin("1.6") inline fun CharArray.sort(
    noinline comparison: (a: Char, b: Char) -> Int)

(source)
Deprecated: Use other sorting functions from the Standard Library

Sorts the array in-place according to the order specified by the given comparison function.