min By Or Null
Начиная с Kotlin: 1.4
inline fun <T, R : Comparable<R>> Sequence<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
}
© 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.sequences/min-by-or-null.html