max Of Or Null
Начиная с Kotlin: 1.4
inline fun <T> Array<out T>.maxOfOrNull(selector: (T) -> Double): Double?
inline fun ByteArray.maxOfOrNull(selector: (Byte) -> Double): Double?
inline fun ShortArray.maxOfOrNull(selector: (Short) -> Double): Double?
inline fun IntArray.maxOfOrNull(selector: (Int) -> Double): Double?
inline fun LongArray.maxOfOrNull(selector: (Long) -> Double): Double?
inline fun FloatArray.maxOfOrNull(selector: (Float) -> Double): Double?
inline fun DoubleArray.maxOfOrNull(selector: (Double) -> Double): Double?
inline fun BooleanArray.maxOfOrNull(selector: (Boolean) -> Double): Double?
inline fun CharArray.maxOfOrNull(selector: (Char) -> Double): Double?
inline fun <T> Array<out T>.maxOfOrNull(selector: (T) -> Float): Float?
inline fun ByteArray.maxOfOrNull(selector: (Byte) -> Float): Float?
inline fun ShortArray.maxOfOrNull(selector: (Short) -> Float): Float?
inline fun IntArray.maxOfOrNull(selector: (Int) -> Float): Float?
inline fun LongArray.maxOfOrNull(selector: (Long) -> Float): Float?
inline fun FloatArray.maxOfOrNull(selector: (Float) -> Float): Float?
inline fun DoubleArray.maxOfOrNull(selector: (Double) -> Float): Float?
inline fun BooleanArray.maxOfOrNull(selector: (Boolean) -> Float): Float?
inline fun CharArray.maxOfOrNull(selector: (Char) -> Float): Float?
inline fun UIntArray.maxOfOrNull(selector: (UInt) -> Double): Double?
inline fun ULongArray.maxOfOrNull(selector: (ULong) -> Double): Double?
inline fun UByteArray.maxOfOrNull(selector: (UByte) -> Double): Double?
inline fun UShortArray.maxOfOrNull(selector: (UShort) -> Double): Double?
inline fun UIntArray.maxOfOrNull(selector: (UInt) -> Float): Float?
inline fun ULongArray.maxOfOrNull(selector: (ULong) -> Float): Float?
inline fun UByteArray.maxOfOrNull(selector: (UByte) -> Float): Float?
inline fun UShortArray.maxOfOrNull(selector: (UShort) -> Float): Float?
Возвращает наибольшее значение среди всех значений, полученных при применении функции селектора к каждому элементу массива, или null, если массив пуст.
Если какое-либо из значений, полученных функцией селектора, равно NaN, результатом будет NaN.
Примеры
import kotlin.math.*
import kotlin.test.*
fun main() {
//sampleStart
data class Rectangle(val width: Double, val height: Double) {
val aspectRatio: Double get() = if (height != 0.0) width / height else Double.NaN
}
// The largest and smallest width-to-height ratios
val rectangles = listOf(
Rectangle(15.0, 10.0),
Rectangle(25.0, 20.0),
Rectangle(40.0, 30.0),
)
println(rectangles.maxOf { it.aspectRatio }) // 1.5
println(rectangles.minOf { it.aspectRatio }) // 1.25
// Aspect ratio of a point (0.0 by 0.0) is NaN, hence the result is NaN
val rectanglesAndPoint = rectangles + Rectangle(0.0, 0.0)
println(rectanglesAndPoint.maxOf { it.aspectRatio }) // NaN
println(rectanglesAndPoint.minOf { it.aspectRatio }) // NaN
val emptyList = emptyList<Rectangle>()
// maxOf() and minOf() throw if the collection is empty
// emptyList.maxOf { it.aspectRatio } // will fail with NoSuchElementException
// emptyList.minOf { it.aspectRatio } // will fail with NoSuchElementException
// maxOfOrNull() and minOfOrNull() return null if the collection is empty
println(emptyList.maxOfOrNull { it.aspectRatio }) // null
println(emptyList.minOfOrNull { it.aspectRatio }) // null
//sampleEnd
}
inline fun <T, R : Comparable<R>> Array<out T>.maxOfOrNull(selector: (T) -> R): R?
Возвращает наибольшее значение среди всех значений, полученных при применении функции селектора к каждому элементу массива, или null, если массив пуст.
Если наибольшее значение получено для нескольких элементов, эта функция возвращает первое из этих значений.
Примеры
import kotlin.math.*
import kotlin.test.*
fun main() {
//sampleStart
// The length of the longest and shortest names
val names = listOf("Alice", "Bob", "Carol")
println(names.maxOf { it.length }) // 5
println(names.minOf { it.length }) // 3
val emptyList = emptyList<String>()
// maxOf() and minOf() throw if the collection is empty
// emptyList.maxOf { it.length } // will fail with NoSuchElementException
// emptyList.minOf { it.length } // will fail with NoSuchElementException
// maxOfOrNull() and minOfOrNull() return null if the collection is empty
println(emptyList.maxOfOrNull { it.length }) // null
println(emptyList.minOfOrNull { it.length }) // null
//sampleEnd
}
inline fun <R : Comparable<R>> ByteArray.maxOfOrNull(selector: (Byte) -> R): R?
inline fun <R : Comparable<R>> ShortArray.maxOfOrNull(selector: (Short) -> R): R?
inline fun <R : Comparable<R>> IntArray.maxOfOrNull(selector: (Int) -> R): R?
inline fun <R : Comparable<R>> LongArray.maxOfOrNull(selector: (Long) -> R): R?
inline fun <R : Comparable<R>> FloatArray.maxOfOrNull(selector: (Float) -> R): R?
inline fun <R : Comparable<R>> DoubleArray.maxOfOrNull(selector: (Double) -> R): R?
inline fun <R : Comparable<R>> BooleanArray.maxOfOrNull(selector: (Boolean) -> R): R?
inline fun <R : Comparable<R>> CharArray.maxOfOrNull(selector: (Char) -> R): R?
inline fun <R : Comparable<R>> UIntArray.maxOfOrNull(selector: (UInt) -> R): R?
inline fun <R : Comparable<R>> ULongArray.maxOfOrNull(selector: (ULong) -> R): R?
inline fun <R : Comparable<R>> UByteArray.maxOfOrNull(selector: (UByte) -> R): R?
inline fun <R : Comparable<R>> UShortArray.maxOfOrNull(selector: (UShort) -> R): R?
Возвращает наибольшее значение среди всех значений, полученных при применении функции селектора к каждому элементу массива, или null, если массив пуст.
Если наибольшее значение получено для нескольких элементов, эта функция возвращает первое из этих значений.
Примеры
import kotlin.math.*
import kotlin.test.*
fun main() {
//sampleStart
// The largest and smallest last digits in the array
val numbers = intArrayOf(13, 7, 22, 64)
println(numbers.maxOf { it % 10 }) // 7
println(numbers.minOf { it % 10 }) // 2
val emptyArray = intArrayOf()
// maxOf() and minOf() throw if the array is empty
// emptyArray.maxOf { it % 10 } // will fail with NoSuchElementException
// emptyArray.minOf { it % 10 } // will fail with NoSuchElementException
// maxOfOrNull() and minOfOrNull() return null if the array is empty
println(emptyArray.maxOfOrNull { it % 10 }) // null
println(emptyArray.minOfOrNull { it % 10 }) // null
//sampleEnd
}
inline fun <T> Iterable<T>.maxOfOrNull(selector: (T) -> Double): Double?
inline fun <T> Iterable<T>.maxOfOrNull(selector: (T) -> Float): Float?
Возвращает наибольшее значение среди всех значений, полученных при применении функции селектора к каждому элементу коллекции, или null, если коллекция пуста.
Если какое-либо из значений, полученных функцией селектора, равно NaN, результатом будет NaN.
Примеры
import kotlin.math.*
import kotlin.test.*
fun main() {
//sampleStart
data class Rectangle(val width: Double, val height: Double) {
val aspectRatio: Double get() = if (height != 0.0) width / height else Double.NaN
}
// The largest and smallest width-to-height ratios
val rectangles = listOf(
Rectangle(15.0, 10.0),
Rectangle(25.0, 20.0),
Rectangle(40.0, 30.0),
)
println(rectangles.maxOf { it.aspectRatio }) // 1.5
println(rectangles.minOf { it.aspectRatio }) // 1.25
// Aspect ratio of a point (0.0 by 0.0) is NaN, hence the result is NaN
val rectanglesAndPoint = rectangles + Rectangle(0.0, 0.0)
println(rectanglesAndPoint.maxOf { it.aspectRatio }) // NaN
println(rectanglesAndPoint.minOf { it.aspectRatio }) // NaN
val emptyList = emptyList<Rectangle>()
// maxOf() and minOf() throw if the collection is empty
// emptyList.maxOf { it.aspectRatio } // will fail with NoSuchElementException
// emptyList.minOf { it.aspectRatio } // will fail with NoSuchElementException
// maxOfOrNull() and minOfOrNull() return null if the collection is empty
println(emptyList.maxOfOrNull { it.aspectRatio }) // null
println(emptyList.minOfOrNull { it.aspectRatio }) // null
//sampleEnd
}
inline fun <T, R : Comparable<R>> Iterable<T>.maxOfOrNull(selector: (T) -> R): R?
Возвращает наибольшее значение среди всех значений, полученных при применении функции селектора к каждому элементу коллекции, или null, если коллекция пуста.
Если наибольшее значение получено для нескольких элементов, эта функция возвращает первое из этих значений.
Примеры
import kotlin.math.*
import kotlin.test.*
fun main() {
//sampleStart
// The length of the longest and shortest names
val names = listOf("Alice", "Bob", "Carol")
println(names.maxOf { it.length }) // 5
println(names.minOf { it.length }) // 3
val emptyList = emptyList<String>()
// maxOf() and minOf() throw if the collection is empty
// emptyList.maxOf { it.length } // will fail with NoSuchElementException
// emptyList.minOf { it.length } // will fail with NoSuchElementException
// maxOfOrNull() and minOfOrNull() return null if the collection is empty
println(emptyList.maxOfOrNull { it.length }) // null
println(emptyList.minOfOrNull { it.length }) // null
//sampleEnd
}
inline fun <K, V> Map<out K, V>.maxOfOrNull(selector: (Map.Entry<K, V>) -> Double): Double?
inline fun <K, V> Map<out K, V>.maxOfOrNull(selector: (Map.Entry<K, V>) -> Float): Float?
Возвращает наибольшее значение среди всех значений, полученных при применении функции селектора к каждой записи карты, или null, если карта пуста.
Если какое-либо из значений, полученных функцией селектора, равно NaN, результатом будет NaN.
Примеры
import kotlin.math.*
import kotlin.test.*
fun main() {
//sampleStart
data class Rectangle(val width: Double, val height: Double) {
val aspectRatio: Double get() = if (height != 0.0) width / height else Double.NaN
}
// The largest and smallest width-to-height ratios
val rectangles = listOf(
Rectangle(15.0, 10.0),
Rectangle(25.0, 20.0),
Rectangle(40.0, 30.0),
)
println(rectangles.maxOf { it.aspectRatio }) // 1.5
println(rectangles.minOf { it.aspectRatio }) // 1.25
// Aspect ratio of a point (0.0 by 0.0) is NaN, hence the result is NaN
val rectanglesAndPoint = rectangles + Rectangle(0.0, 0.0)
println(rectanglesAndPoint.maxOf { it.aspectRatio }) // NaN
println(rectanglesAndPoint.minOf { it.aspectRatio }) // NaN
val emptyList = emptyList<Rectangle>()
// maxOf() and minOf() throw if the collection is empty
// emptyList.maxOf { it.aspectRatio } // will fail with NoSuchElementException
// emptyList.minOf { it.aspectRatio } // will fail with NoSuchElementException
// maxOfOrNull() and minOfOrNull() return null if the collection is empty
println(emptyList.maxOfOrNull { it.aspectRatio }) // null
println(emptyList.minOfOrNull { it.aspectRatio }) // null
//sampleEnd
}
inline fun <K, V, R : Comparable<R>> Map<out K, V>.maxOfOrNull(selector: (Map.Entry<K, V>) -> R): R?
Возвращает наибольшее значение среди всех значений, полученных при применении функции селектора к каждой записи карты, или null, если карта пуста.
Если наибольшее значение получено для нескольких записей, эта функция возвращает первое из этих значений.
Примеры
import kotlin.math.*
import kotlin.test.*
fun main() {
//sampleStart
// The length of the longest and shortest names
val names = listOf("Alice", "Bob", "Carol")
println(names.maxOf { it.length }) // 5
println(names.minOf { it.length }) // 3
val emptyList = emptyList<String>()
// maxOf() and minOf() throw if the collection is empty
// emptyList.maxOf { it.length } // will fail with NoSuchElementException
// emptyList.minOf { it.length } // will fail with NoSuchElementException
// maxOfOrNull() and minOfOrNull() return null if the collection is empty
println(emptyList.maxOfOrNull { it.length }) // null
println(emptyList.minOfOrNull { 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/max-of-or-null.html