Spec-Zone.ru › Kotlin 2

isSortedBy

kotlin-stdlib/kotlin.collections/isSortedBy

Начиная с 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
}

@ExperimentalUnsignedTypes
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
}

@ExperimentalUnsignedTypes
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
}

@ExperimentalUnsignedTypes
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
}

@ExperimentalUnsignedTypes
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API