sortWith

expect fun <T> Array<out T>.sortWith(comparator: Comparator<in T>)(source)

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

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

Since Kotlin

1.0

expect fun <T> Array<out T>.sortWith(comparator: Comparator<in T>, fromIndex: Int = 0, toIndex: Int = size)(source)

Sorts a range in the array in-place with the given comparator.

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

Since Kotlin

1.0

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.

Throws

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


expect fun <T> MutableList<T>.sortWith(comparator: Comparator<in T>)(source)

Sorts elements in the list in-place according to the order specified with comparator.

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

Since Kotlin

1.0

Samples

import kotlin.test.*

fun main() { 
   //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
}
actual fun <T> Array<out T>.sortWith(comparator: Comparator<in T>)(source)

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

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

Since Kotlin

1.1

actual fun <T> Array<out T>.sortWith(comparator: Comparator<in T>, fromIndex: Int = 0, toIndex: Int = size)(source)

Sorts a range in the array in-place with the given comparator.

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

Since Kotlin

1.4

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.

Throws

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


actual fun <T> MutableList<T>.sortWith(comparator: Comparator<in T>)(source)

Sorts elements in the list in-place according to the order specified with comparator.

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

Since Kotlin

1.1

Samples

import kotlin.test.*

fun main() { 
   //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
}
actual fun <T> Array<out T>.sortWith(comparator: Comparator<in T>)(source)

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

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

Since Kotlin

1.3

actual fun <T> Array<out T>.sortWith(comparator: Comparator<in T>, fromIndex: Int = 0, toIndex: Int = size)(source)

Sorts a range in the array in-place with the given comparator.

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

Since Kotlin

1.3

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.

Throws

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


actual fun <T> MutableList<T>.sortWith(comparator: Comparator<in T>)(source)

Sorts elements in the list in-place according to the order specified with comparator.

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

Since Kotlin

1.3

Samples

import kotlin.test.*

fun main() { 
   //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
}
actual fun <T> Array<out T>.sortWith(comparator: Comparator<in T>)(source)

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

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

Since Kotlin

1.8

actual fun <T> Array<out T>.sortWith(comparator: Comparator<in T>, fromIndex: Int = 0, toIndex: Int = size)(source)

Sorts a range in the array in-place with the given comparator.

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

Since Kotlin

1.8

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.

Throws

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


actual fun <T> MutableList<T>.sortWith(comparator: Comparator<in T>)(source)

Sorts elements in the list in-place according to the order specified with comparator.

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

Since Kotlin

1.8

Samples

import kotlin.test.*

fun main() { 
   //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
}
actual fun <T> Array<out T>.sortWith(comparator: Comparator<in T>)(source)

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

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

Since Kotlin

1.8

actual fun <T> Array<out T>.sortWith(comparator: Comparator<in T>, fromIndex: Int = 0, toIndex: Int = size)(source)

Sorts a range in the array in-place with the given comparator.

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

Since Kotlin

1.8

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.

Throws

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


actual fun <T> MutableList<T>.sortWith(comparator: Comparator<in T>)(source)

Sorts elements in the list in-place according to the order specified with comparator.

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

Since Kotlin

1.8

Samples

import kotlin.test.*

fun main() { 
   //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
}