Функция maxOf

Функция maxOf возвращает наибольшее значение из двух или более переданных аргументов. Также может использоваться для поиска максимального элемента в коллекциях. Функция работает с различными типами данных, включая числа, строки и пользовательские типы, для которых определен компаратор.

Для каких коллекций работает

Функция maxOf работает со следующими типами коллекций:

Синтаксис для примитивных типов

kotlinfun maxOf(a: Byte, b: Byte): Byte
fun maxOf(a: Short, b: Short): Short
fun maxOf(a: Int, b: Int): Int
fun maxOf(a: Long, b: Long): Long
fun maxOf(a: Float, b: Float): Float
fun maxOf(a: Double, b: Double): Double

Синтаксис для сравнения нескольких значений

kotlinfun <T : Comparable<T>> maxOf(a: T, b: T): T
fun <T : Comparable<T>> maxOf(a: T, b: T, c: T): T
fun <T : Comparable<T>> maxOf(vararg values: T): T

Синтаксис с компаратором

kotlinfun <T> maxOf(a: T, b: T, comparator: Comparator<in T>): T
fun <T> maxOf(vararg values: T, comparator: Comparator<in T>): T

Пример

Найдем максимальное число из трех целых чисел:

kotlinval a = 5
val b = 12
val c = 8
val res = maxOf(a, b, c)
println(res)

Результат выполнения кода:

kotlinInt 12

Пример

Найдем максимальную строку из трех строк:

kotlinval str1 = "apple"
val str2 = "banana"
val str3 = "cherry"
val res = maxOf(str1, str2, str3)
println(res)

Результат выполнения кода:

kotlinString "cherry"

Пример

Найдем максимальный элемент в массиве чисел:

kotlinval numbers = arrayOf(34, 12, 56, 23, 89)
val res = maxOf(*numbers)
println(res)

Результат выполнения кода:

kotlinInt 89

Пример

Найдем максимальный элемент в списке с помощью компаратора:

kotlindata class Person(val name: String, val age: Int)

val people = listOf(
  Person("John", 25),
  Person("Alice", 30),
  Person("Bob", 22)
)

val res = maxOf(people[0], people[1], people[2],
  compareBy { it.age })
println(res)

Результат выполнения кода:

kotlinPerson(name=Alice, age=30)

Пример

Найдем максимальное значение в множестве:

kotlinval numberSet = setOf(15, 42, 7, 33, 19)
val res = maxOf(*numberSet.toTypedArray())
println(res)

Результат выполнения кода:

kotlinInt 42

Пример

Найдем максимальное значение среди значений словаря:

kotlinval map = mapOf("a" to 10, "b" to 25, "c" to 15)
val res = maxOf(*map.values.toTypedArray())
println(res)

Результат выполнения кода:

kotlinInt 25

Смотрите также

  • функцию minOf,
    которая находит минимальное значение
  • функцию max,
    которая находит максимальный элемент в коллекции
  • функцию maxBy,
    которая находит элемент с максимальным значением свойства