Spec-Zone.ru › Kotlin 2

maxBy

kotlin-stdlib/kotlin.collections/maxBy

Требования к платформе и версии: Common (1.7)

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

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

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

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

Выбрасывает

NoSuchElementException

если массив пуст.

Примеры

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
}

@JvmName(name = "maxByOrThrow")
inline fun <T, R : Comparable<R>> Iterable<T>.maxBy(selector: (T) -> R): T

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

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

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

Выбрасывает

NoSuchElementException

если коллекция пуста.

Примеры

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
}

@JvmName(name = "maxByOrThrow")
inline fun <K, V, R : Comparable<R>> Map<out K, V>.maxBy(selector: (Map.Entry<K, V>) -> R): Map.Entry<K, V>

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

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

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

Выбрасывает

NoSuchElementException

если map пуста.

Примеры

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
}

Требования к платформе и версии: JVM (1.0)

inline fun <T, R : Comparable<R>> Array<out T>.maxBy(selector: (T) -> R): T?
inline fun <R : Comparable<R>> ByteArray.maxBy(selector: (Byte) -> R): Byte?
inline fun <R : Comparable<R>> ShortArray.maxBy(selector: (Short) -> R): Short?
inline fun <R : Comparable<R>> IntArray.maxBy(selector: (Int) -> R): Int?
inline fun <R : Comparable<R>> LongArray.maxBy(selector: (Long) -> R): Long?
inline fun <R : Comparable<R>> FloatArray.maxBy(selector: (Float) -> R): Float?
inline fun <R : Comparable<R>> DoubleArray.maxBy(selector: (Double) -> R): Double?
inline fun <R : Comparable<R>> BooleanArray.maxBy(selector: (Boolean) -> R): Boolean?
inline fun <R : Comparable<R>> CharArray.maxBy(selector: (Char) -> R): Char?
inline fun <T, R : Comparable<R>> Iterable<T>.maxBy(selector: (T) -> R): T?
inline fun <K, V, R : Comparable<R>> Map<out K, V>.maxBy(selector: (Map.Entry<K, V>) -> R): Map.Entry<K, V>?

Устарело

Предупреждение начиная с 1.4

Ошибка начиная с 1.5

Скрыто начиная с 1.6

Вместо этого используйте maxByOrNull.

Заменить на

this.maxByOrNull(selector)

@ExperimentalUnsignedTypes
inline fun <R : Comparable<R>> UIntArray.maxBy(selector: (UInt) -> R): UInt?
@ExperimentalUnsignedTypes
inline fun <R : Comparable<R>> ULongArray.maxBy(selector: (ULong) -> R): ULong?
@ExperimentalUnsignedTypes
inline fun <R : Comparable<R>> UByteArray.maxBy(selector: (UByte) -> R): UByte?
@ExperimentalUnsignedTypes
inline fun <R : Comparable<R>> UShortArray.maxBy(selector: (UShort) -> R): UShort?

Устарело

Предупреждение начиная с 1.4

Ошибка начиная с 1.5

Скрыто начиная с 1.6

Вместо этого используйте maxByOrNull.

Заменить на

this.maxByOrNull(selector)

© 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-by.html

Spec-Zone.ru

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