null если коллекция пустая.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
menu

Функция minByOrNull

Функция minByOrNull находит в коллекции элемент, для которого функция-селектор возвращает минимальное значение. Если коллекция пустая, функция возвращает null. Функция работает с массивами, списками, множествами, ассоциативными массивами и другими типами коллекций.

Импорт

import kotlin.collections.minByOrNull

Синтаксис

// Для Iterable (List, Set) inline fun <T, R : Comparable<R>> Iterable<T>.minByOrNull( selector: (T) -> R ): T?
// Для Array inline fun <T, R : Comparable<R>> Array<out T>.minByOrNull( selector: (T) -> R ): T?
// Для Map inline fun <K, V, R : Comparable<R>> Map<out K, V>.minByOrNull( selector: (Entry<K, V>) -> R ): Entry<K, V>?

Пример

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

val numbers = listOf(5, 2, 8, 1, 9) val res = numbers.minByOrNull { it } println(res)

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

Int 1

Пример

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

val strings = arrayOf("abcde", "12", "hello", "w") val res = strings.minByOrNull { it.length } println(res)

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

String "w"

Пример

Найдем запись с минимальным значением в ассоциативном массиве:

val map = mapOf("a" to 10, "b" to 5, "c" to 15) val res = map.minByOrNull { it.value } println(res)

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

b=5

Пример

Работа с пустой коллекцией возвращает null:

val emptyList = emptyList<Int>() val res = emptyList.minByOrNull { it } println(res)

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

null

Пример

Использование сложной функции-селектора:

data class Person(val name: String, val age: Int) val people = listOf( Person("John", 25), Person("Alice", 30), Person("Bob", 20) ) val youngest = people.minByOrNull { it.age } println(youngest)

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

Person(name=Bob, age=20)

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

  • функцию minBy,
    которая выбрасывает исключение для пустых коллекций
  • функцию minOrNull,
    которая ищет минимальный элемент без преобразования
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить