Spec-Zone.ru › Kotlin 2

minByOrNull

kotlin-stdlib/kotlin.collections/minByOrNull

Начиная с Kotlin: 1.4

inline fun <T, R : Comparable<R>> Array<out T>.minByOrNull(selector: (T) -> R): T?
inline fun <R : Comparable<R>> ByteArray.minByOrNull(selector: (Byte) -> R): Byte?
inline fun <R : Comparable<R>> ShortArray.minByOrNull(selector: (Short) -> R): Short?
inline fun <R : Comparable<R>> IntArray.minByOrNull(selector: (Int) -> R): Int?
inline fun <R : Comparable<R>> LongArray.minByOrNull(selector: (Long) -> R): Long?
inline fun <R : Comparable<R>> FloatArray.minByOrNull(selector: (Float) -> R): Float?
inline fun <R : Comparable<R>> DoubleArray.minByOrNull(selector: (Double) -> R): Double?
inline fun <R : Comparable<R>> BooleanArray.minByOrNull(selector: (Boolean) -> R): Boolean?
inline fun <R : Comparable<R>> CharArray.minByOrNull(selector: (Char) -> R): Char?
@ExperimentalUnsignedTypes
inline fun <R : Comparable<R>> UIntArray.minByOrNull(selector: (UInt) -> R): UInt?
@ExperimentalUnsignedTypes
inline fun <R : Comparable<R>> ULongArray.minByOrNull(selector: (ULong) -> R): ULong?
@ExperimentalUnsignedTypes
inline fun <R : Comparable<R>> UByteArray.minByOrNull(selector: (UByte) -> R): UByte?
@ExperimentalUnsignedTypes
inline fun <R : Comparable<R>> UShortArray.minByOrNull(selector: (UShort) -> R): UShort?

Возвращает первый элемент, для которого функция селектор возвращает наименьшее значение, или null, если элементов нет.

Если функция селектор возвращает несколько одинаковых минимальных значений, эта функция возвращает первый из элементов, соответствующих этим значениям.

Обратите внимание, что функция селектор не вызывается, если массив содержит ноль или один элемент, поскольку в этих случаях понятно, какой элемент нужно вернуть, и без вызова функции селектор. Поэтому рекомендуется не полагаться на побочные эффекты, возникающие при вызове функции селектор для каждого элемента.

Примеры

import kotlin.math.*
import kotlin.test.*

fun main() { 
   //sampleStart 
   val strings = listOf("abcd", "abc", "ab", "de", "abcde")

val longestString = strings.maxBy { it.length }
println(longestString) // abcde

val shortestString = strings.minBy { it.length }
println(shortestString) // ab

val emptyList = emptyList<String>()
// maxBy() and minBy() throw if the collection is empty
// emptyList.maxBy { it.length } // will fail with NoSuchElementException
// emptyList.minBy { it.length } // will fail with NoSuchElementException
// maxByOrNull() and minByOrNull() return null if the collection is empty
println(emptyList.maxByOrNull { it.length }) // null
println(emptyList.minByOrNull { it.length }) // null 
   //sampleEnd
}

inline fun <T, R : Comparable<R>> Iterable<T>.minByOrNull(selector: (T) -> R): T?

Возвращает первый элемент, для которого функция селектор возвращает наименьшее значение, или null, если элементов нет.

Если функция селектор возвращает несколько одинаковых минимальных значений, эта функция возвращает первый из элементов, соответствующих этим значениям.

Обратите внимание, что функция селектор не вызывается, если коллекция содержит ноль или один элемент, поскольку в этих случаях понятно, какой элемент нужно вернуть, и без вызова функции селектор. Поэтому рекомендуется не полагаться на побочные эффекты, возникающие при вызове функции селектор для каждого элемента.

Примеры

import kotlin.math.*
import kotlin.test.*

fun main() { 
   //sampleStart 
   val strings = listOf("abcd", "abc", "ab", "de", "abcde")

val longestString = strings.maxBy { it.length }
println(longestString) // abcde

val shortestString = strings.minBy { it.length }
println(shortestString) // ab

val emptyList = emptyList<String>()
// maxBy() and minBy() throw if the collection is empty
// emptyList.maxBy { it.length } // will fail with NoSuchElementException
// emptyList.minBy { it.length } // will fail with NoSuchElementException
// maxByOrNull() and minByOrNull() return null if the collection is empty
println(emptyList.maxByOrNull { it.length }) // null
println(emptyList.minByOrNull { it.length }) // null 
   //sampleEnd
}

inline fun <K, V, R : Comparable<R>> Map<out K, V>.minByOrNull(selector: (Map.Entry<K, V>) -> R): Map.Entry<K, V>?

Возвращает первую запись, для которой функция селектор возвращает наименьшее значение, или null, если записей нет.

Если функция селектор возвращает несколько одинаковых минимальных значений, эта функция возвращает первую из записей, соответствующих этим значениям.

Обратите внимание, что функция селектор не вызывается, если карта содержит ноль или одну запись, поскольку в этих случаях понятно, какую запись нужно вернуть, и без вызова функции селектор. Поэтому рекомендуется не полагаться на побочные эффекты, возникающие при вызове функции селектор для каждой записи.

Примеры

import kotlin.math.*
import kotlin.test.*

fun main() { 
   //sampleStart 
   val strings = listOf("abcd", "abc", "ab", "de", "abcde")

val longestString = strings.maxBy { it.length }
println(longestString) // abcde

val shortestString = strings.minBy { it.length }
println(shortestString) // ab

val emptyList = emptyList<String>()
// maxBy() and minBy() throw if the collection is empty
// emptyList.maxBy { it.length } // will fail with NoSuchElementException
// emptyList.minBy { it.length } // will fail with NoSuchElementException
// maxByOrNull() and minByOrNull() return null if the collection is empty
println(emptyList.maxByOrNull { it.length }) // null
println(emptyList.minByOrNull { it.length }) // null 
   //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/min-by-or-null.html

Spec-Zone.ru

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