is Sorted By
Начиная с Kotlin: 2.4
inline fun <T, R : Comparable<R>> Array<out T>.isSortedBy(selector: (T) -> R?): Boolean
Возвращает true, если для каждого элемента массива значение селектора меньше или равно значению селектора следующего элемента согласно естественному порядку сортировки значений селектора.
Возвращает true, если в массиве меньше двух элементов.
Значения селектора соседних элементов последовательно сравниваются с помощью compareValues. Массив считается отсортированным, если для каждой пары соседних элементов значение селектора предыдущего элемента не больше значения следующего.
Если селектор возвращает null для элемента, значение null считается меньшим, чем любое ненулевое значение.
Примеры
fun main() {
//sampleStart
println(arrayOf<String>().isSortedBy { it.length }) // true
println(arrayOf("c").isSortedBy { it.length }) // true
val values = arrayOf("c", "bb", "aaa")
println(values.isSortedBy { it.length }) // true
println(values.isSortedBy { it }) // false
println(arrayOf("a", "b").isSortedBy { if (it == "a") null else it }) // true
println(arrayOf(null, "a", "b").isSortedBy { it }) // true
println(arrayOf(null, "c", "bb").isSortedBy { it?.length }) // true
//sampleEnd
}
inline fun <R : Comparable<R>> ByteArray.isSortedBy(selector: (Byte) -> R?): Boolean
Возвращает true, если для каждого элемента массива значение селектора меньше или равно значению селектора следующего элемента согласно естественному порядку сортировки значений селектора.
Возвращает true, если в массиве меньше двух элементов.
Значения селектора соседних элементов последовательно сравниваются с помощью compareValues. Массив считается отсортированным, если для каждой пары соседних элементов значение селектора предыдущего элемента не больше значения следующего.
Если селектор возвращает null для элемента, значение null считается меньшим, чем любое ненулевое значение.
Примеры
import kotlin.math.abs
fun main() {
//sampleStart
println(byteArrayOf().isSortedBy { it * it }) // true
println(byteArrayOf(1).isSortedBy { it * it }) // true
val values = byteArrayOf(1, -2, 3, -4, 5)
println(values.isSortedBy { it * it }) // true
println(values.isSortedBy { abs(it.toInt()) }) // true
println(values.isSortedBy { it }) // false
println(byteArrayOf(1, 2).isSortedBy { if (it.toInt() == 1) null else it }) // true
//sampleEnd
}
inline fun <R : Comparable<R>> ShortArray.isSortedBy(selector: (Short) -> R?): Boolean
Возвращает true, если для каждого элемента массива значение селектора меньше или равно значению селектора следующего элемента согласно естественному порядку сортировки значений селектора.
Возвращает true, если в массиве меньше двух элементов.
Значения селектора соседних элементов последовательно сравниваются с помощью compareValues. Массив считается отсортированным, если для каждой пары соседних элементов значение селектора предыдущего элемента не больше значения следующего.
Если селектор возвращает null для элемента, значение null считается меньшим, чем любое ненулевое значение.
Примеры
import kotlin.math.abs
fun main() {
//sampleStart
println(shortArrayOf().isSortedBy { it * it }) // true
println(shortArrayOf(1).isSortedBy { it * it }) // true
val values = shortArrayOf(1, -2, 3, -4, 5)
println(values.isSortedBy { it * it }) // true
println(values.isSortedBy { abs(it.toInt()) }) // true
println(values.isSortedBy { it }) // false
println(shortArrayOf(1, 2).isSortedBy { if (it.toInt() == 1) null else it }) // true
//sampleEnd
}
inline fun <R : Comparable<R>> IntArray.isSortedBy(selector: (Int) -> R?): Boolean
Возвращает true, если для каждого элемента массива значение селектора меньше или равно значению селектора следующего элемента согласно естественному порядку сортировки значений селектора.
Возвращает true, если в массиве меньше двух элементов.
Значения селектора соседних элементов последовательно сравниваются с помощью compareValues. Массив считается отсортированным, если для каждой пары соседних элементов значение селектора предыдущего элемента не больше значения следующего.
Если селектор возвращает null для элемента, значение null считается меньшим, чем любое ненулевое значение.
Примеры
import kotlin.math.abs
fun main() {
//sampleStart
println(intArrayOf().isSortedBy { it * it }) // true
println(intArrayOf(1).isSortedBy { it * it }) // true
val values = intArrayOf(1, -2, 3, -4, 5)
println(values.isSortedBy { it * it }) // true
println(values.isSortedBy { abs(it) }) // true
println(values.isSortedBy { it }) // false
println(intArrayOf(1, 2).isSortedBy { if (it == 1) null else it }) // true
//sampleEnd
}
inline fun <R : Comparable<R>> LongArray.isSortedBy(selector: (Long) -> R?): Boolean
Возвращает true, если для каждого элемента массива значение селектора меньше или равно значению селектора следующего элемента согласно естественному порядку сортировки значений селектора.
Возвращает true, если в массиве меньше двух элементов.
Значения селектора соседних элементов последовательно сравниваются с помощью compareValues. Массив считается отсортированным, если для каждой пары соседних элементов значение селектора предыдущего элемента не больше значения следующего.
Если селектор возвращает null для элемента, значение null считается меньшим, чем любое ненулевое значение.
Примеры
import kotlin.math.abs
fun main() {
//sampleStart
println(longArrayOf().isSortedBy { it * it }) // true
println(longArrayOf(1L).isSortedBy { it * it }) // true
val values = longArrayOf(1L, -2L, 3L, -4L, 5L)
println(values.isSortedBy { it * it }) // true
println(values.isSortedBy { abs(it) }) // true
println(values.isSortedBy { it }) // false
println(longArrayOf(1L, 2L).isSortedBy { if (it == 1L) null else it }) // true
//sampleEnd
}
inline fun <R : Comparable<R>> FloatArray.isSortedBy(selector: (Float) -> R?): Boolean
Возвращает true, если для каждого элемента массива значение селектора меньше или равно значению селектора следующего элемента согласно естественному порядку сортировки значений селектора.
Возвращает true, если в массиве меньше двух элементов.
Значения селектора соседних элементов последовательно сравниваются с помощью compareValues. Массив считается отсортированным, если для каждой пары соседних элементов значение селектора предыдущего элемента не больше значения следующего.
Если селектор возвращает null для элемента, значение null считается меньшим, чем любое ненулевое значение.
Примеры
import kotlin.math.abs
fun main() {
//sampleStart
println(floatArrayOf().isSortedBy { it * it }) // true
println(floatArrayOf(-0.5f).isSortedBy { it * it }) // true
val values = floatArrayOf(-0.5f, 1.0f, -1.5f, 2.0f)
println(values.isSortedBy { it * it }) // true
println(values.isSortedBy { abs(it) }) // true
println(values.isSortedBy { it }) // false
println(floatArrayOf(1.0f, 2.5f).isSortedBy { if (it == 1.0f) null else it }) // true
//sampleEnd
}
inline fun <R : Comparable<R>> DoubleArray.isSortedBy(selector: (Double) -> R?): Boolean
Возвращает true, если для каждого элемента массива значение селектора меньше или равно значению селектора следующего элемента согласно естественному порядку сортировки значений селектора.
Возвращает true, если в массиве меньше двух элементов.
Значения селектора соседних элементов последовательно сравниваются с помощью compareValues. Массив считается отсортированным, если для каждой пары соседних элементов значение селектора предыдущего элемента не больше значения следующего.
Если селектор возвращает null для элемента, значение null считается меньшим, чем любое ненулевое значение.
Примеры
import kotlin.math.abs
fun main() {
//sampleStart
println(doubleArrayOf().isSortedBy { it * it }) // true
println(doubleArrayOf(-0.5).isSortedBy { it * it }) // true
val values = doubleArrayOf(-0.5, 1.0, -1.5, 2.0)
println(values.isSortedBy { it * it }) // true
println(values.isSortedBy { abs(it) }) // true
println(values.isSortedBy { it }) // false
println(doubleArrayOf(1.0, 2.5).isSortedBy { if (it == 1.0) null else it }) // true
//sampleEnd
}
inline fun <R : Comparable<R>> BooleanArray.isSortedBy(selector: (Boolean) -> R?): Boolean
Возвращает true, если для каждого элемента массива значение селектора меньше или равно значению селектора следующего элемента согласно естественному порядку сортировки значений селектора.
Возвращает true, если в массиве меньше двух элементов.
Значения селектора соседних элементов последовательно сравниваются с помощью compareValues. Массив считается отсортированным, если для каждой пары соседних элементов значение селектора предыдущего элемента не больше значения следующего.
Если селектор возвращает null для элемента, значение null считается меньшим, чем любое ненулевое значение.
Примеры
fun main() {
//sampleStart
println(booleanArrayOf().isSortedBy { it.compareTo(false) }) // true
println(booleanArrayOf(false).isSortedBy { it.compareTo(false) }) // true
val values = booleanArrayOf(false, false, true)
println(values.isSortedBy { it.compareTo(false) }) // true
println(values.isSortedBy { it }) // true
println(values.isSortedBy { !it }) // false
println(booleanArrayOf(false, true).isSortedBy { if (it == false) null else it }) // true
//sampleEnd
}
inline fun <R : Comparable<R>> CharArray.isSortedBy(selector: (Char) -> R?): Boolean
Возвращает true, если для каждого элемента массива значение селектора меньше или равно значению селектора следующего элемента согласно естественному порядку сортировки значений селектора.
Возвращает true, если в массиве меньше двух элементов.
Значения селектора соседних элементов последовательно сравниваются с помощью compareValues. Массив считается отсортированным, если для каждой пары соседних элементов значение селектора предыдущего элемента не больше значения следующего.
Если селектор возвращает null для элемента, значение null считается меньшим, чем любое ненулевое значение.
Примеры
fun main() {
//sampleStart
println(charArrayOf().isSortedBy { it.uppercaseChar() }) // true
println(charArrayOf('A').isSortedBy { it.uppercaseChar() }) // true
val values = charArrayOf('A', 'b', 'C')
println(values.isSortedBy { it.uppercaseChar() }) // true
println(values.isSortedBy { it.lowercaseChar() }) // true
println(values.isSortedBy { it }) // false
println(charArrayOf('a', 'b').isSortedBy { if (it == 'a') null else it }) // true
//sampleEnd
}
inline fun <T, R : Comparable<R>> Iterable<T>.isSortedBy(selector: (T) -> R?): Boolean
Возвращает true, если для каждого элемента коллекции значение селектора меньше или равно значению селектора следующего элемента согласно естественному порядку сортировки значений селектора.
Возвращает true, если в коллекции меньше двух элементов.
Значения селектора соседних элементов последовательно сравниваются с помощью compareValues. Коллекция считается отсортированной, если для каждой пары соседних элементов значение селектора предыдущего элемента не больше значения следующего.
Если селектор возвращает null для элемента, значение null считается меньшим, чем любое ненулевое значение.
Обратите внимание, что результат зависит от порядка итерации коллекции. Порядок итерации некоторых реализаций Iterable может быть нестабильным (изменяться при каждом вызове), и в этом случае данная функция может возвращать разные результаты.
Примеры
fun main() {
//sampleStart
println(listOf<String>().isSortedBy { it.length }) // true
println(listOf("c").isSortedBy { it.length }) // true
val values = listOf("c", "bb", "aaa")
println(values.isSortedBy { it.length }) // true
println(values.isSortedBy { it }) // false
println(listOf("a", "b").isSortedBy { if (it == "a") null else it }) // true
println(listOf(null, "a", "b").isSortedBy { it }) // true
println(listOf(null, "c", "bb").isSortedBy { it?.length }) // true
//sampleEnd
}
inline fun <R : Comparable<R>> UIntArray.isSortedBy(selector: (UInt) -> R?): Boolean
Возвращает true, если для каждого элемента массива значение селектора меньше или равно значению селектора следующего элемента согласно естественному порядку сортировки значений селектора.
Возвращает true, если в массиве меньше двух элементов.
Значения селектора соседних элементов последовательно сравниваются с помощью compareValues. Массив считается отсортированным, если для каждой пары соседних элементов значение селектора предыдущего элемента не больше значения следующего.
Если селектор возвращает null для элемента, значение null считается меньшим, чем любое ненулевое значение.
Примеры
fun main() {
//sampleStart
println(uintArrayOf().isSortedBy { it % 3u }) // true
println(uintArrayOf(3u).isSortedBy { it % 3u }) // true
val values = uintArrayOf(3u, 1u, 4u, 2u)
println(values.isSortedBy { it % 3u }) // true
println(values.isSortedBy { it }) // false
println(uintArrayOf(1u, 2u).isSortedBy { if (it == 1u) null else it }) // true
//sampleEnd
}
inline fun <R : Comparable<R>> ULongArray.isSortedBy(selector: (ULong) -> R?): Boolean
Возвращает true, если для каждого элемента массива значение селектора меньше или равно значению селектора следующего элемента согласно естественному порядку сортировки значений селектора.
Возвращает true, если в массиве меньше двух элементов.
Значения селектора соседних элементов последовательно сравниваются с помощью compareValues. Массив считается отсортированным, если для каждой пары соседних элементов значение селектора предыдущего элемента не больше значения следующего.
Если селектор возвращает null для элемента, значение null считается меньшим, чем любое ненулевое значение.
Примеры
fun main() {
//sampleStart
println(ulongArrayOf().isSortedBy { it % 3uL }) // true
println(ulongArrayOf(3uL).isSortedBy { it % 3uL }) // true
val values = ulongArrayOf(3uL, 1uL, 4uL, 2uL)
println(values.isSortedBy { it % 3uL }) // true
println(values.isSortedBy { it }) // false
println(ulongArrayOf(1uL, 2uL).isSortedBy { if (it == 1uL) null else it }) // true
//sampleEnd
}
inline fun <R : Comparable<R>> UByteArray.isSortedBy(selector: (UByte) -> R?): Boolean
Возвращает true, если для каждого элемента массива значение селектора меньше или равно значению селектора следующего элемента согласно естественному порядку сортировки значений селектора.
Возвращает true, если в массиве меньше двух элементов.
Значения селектора соседних элементов последовательно сравниваются с помощью compareValues. Массив считается отсортированным, если для каждой пары соседних элементов значение селектора предыдущего элемента не больше значения следующего.
Если селектор возвращает null для элемента, значение null считается меньшим, чем любое ненулевое значение.
Примеры
fun main() {
//sampleStart
println(ubyteArrayOf().isSortedBy { it.toUInt() % 3u }) // true
println(ubyteArrayOf(3u).isSortedBy { it.toUInt() % 3u }) // true
val values = ubyteArrayOf(3u, 1u, 4u, 2u)
println(values.isSortedBy { it.toUInt() % 3u }) // true
println(values.isSortedBy { it }) // false
println(ubyteArrayOf(1u, 2u).isSortedBy { if (it.toUInt() == 1u) null else it }) // true
//sampleEnd
}
inline fun <R : Comparable<R>> UShortArray.isSortedBy(selector: (UShort) -> R?): Boolean
Возвращает true, если для каждого элемента массива значение селектора меньше или равно значению селектора следующего элемента согласно естественному порядку сортировки значений селектора.
Возвращает true, если в массиве меньше двух элементов.
Значения селектора соседних элементов последовательно сравниваются с помощью compareValues. Массив считается отсортированным, если для каждой пары соседних элементов значение селектора предыдущего элемента не больше значения следующего.
Если селектор возвращает null для элемента, значение null считается меньшим, чем любое ненулевое значение.
Примеры
fun main() {
//sampleStart
println(ushortArrayOf().isSortedBy { it.toUInt() % 3u }) // true
println(ushortArrayOf(3u).isSortedBy { it.toUInt() % 3u }) // true
val values = ushortArrayOf(3u, 1u, 4u, 2u)
println(values.isSortedBy { it.toUInt() % 3u }) // true
println(values.isSortedBy { it }) // false
println(ushortArrayOf(1u, 2u).isSortedBy { if (it.toUInt() == 1u) null else it }) // true
//sampleEnd
}
© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/is-sorted-by.html