Функция maxOf
Функция maxOf возвращает наибольшее значение
из двух или более переданных аргументов. Также может
использоваться для поиска максимального элемента
в коллекциях. Функция работает с различными типами
данных, включая числа, строки и пользовательские
типы, для которых определен компаратор.
Для каких коллекций работает
Функция maxOf работает со следующими типами коллекций:
Array- массивы любых типовList- списки (List,MutableList)Set- множества (Set,MutableSet)Map- словари (только для значений)Iterable- любые итерируемые коллекцииSequence- последовательности
Синтаксис для примитивных типов
fun 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
Синтаксис для сравнения нескольких значений
fun <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
Синтаксис с компаратором
fun <T> maxOf(a: T, b: T, comparator: Comparator<in T>): T
fun <T> maxOf(vararg values: T, comparator: Comparator<in T>): T
Пример
Найдем максимальное число из трех целых чисел:
val a = 5
val b = 12
val c = 8
val res = maxOf(a, b, c)
println(res)
Результат выполнения кода:
Int 12
Пример
Найдем максимальную строку из трех строк:
val str1 = "apple"
val str2 = "banana"
val str3 = "cherry"
val res = maxOf(str1, str2, str3)
println(res)
Результат выполнения кода:
String "cherry"
Пример
Найдем максимальный элемент в массиве чисел:
val numbers = arrayOf(34, 12, 56, 23, 89)
val res = maxOf(*numbers)
println(res)
Результат выполнения кода:
Int 89
Пример
Найдем максимальный элемент в списке с помощью компаратора:
data 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)
Результат выполнения кода:
Person(name=Alice, age=30)
Пример
Найдем максимальное значение в множестве:
val numberSet = setOf(15, 42, 7, 33, 19)
val res = maxOf(*numberSet.toTypedArray())
println(res)
Результат выполнения кода:
Int 42
Пример
Найдем максимальное значение среди значений словаря:
val map = mapOf("a" to 10, "b" to 25, "c" to 15)
val res = maxOf(*map.values.toTypedArray())
println(res)
Результат выполнения кода:
Int 25