Функция find

Функция find выполняет поиск первого элемента в коллекции, который соответствует заданному предикату (условию поиска). Если элемент найден, функция возвращает его, в противном случае возвращает null.

Функция принимает один параметр - предикат в виде лямбда-выражения, которое определяет условие поиска. Элемент передается в предикат как параметр it или через явное имя.

Импорт

kotlinimport kotlin.collections.find

Синтаксис

kotlin// Для Iterable (List, Set)
inline fun <T> Iterable<T>.find(predicate: (T) -> Boolean): T?
kotlin// Для Array
inline fun <T> Array<T>.find(predicate: (T) -> Boolean): T?
kotlin// Для Map
inline fun <K, V> Map<K, V>.find(predicate: (Map.Entry<K, V>) -> Boolean): Map.Entry<K, V>?

Поддерживаемые типы коллекций

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

Пример

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

kotlinval numbers = listOf(1, 3, 5, 2, 4, 6)
val res = numbers.find { it % 2 == 0 }
println(res)

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

kotlinInt 2

Пример

Найдем первый элемент, начинающийся с буквы 'c' в массиве строк:

kotlinval letters = arrayOf("a", "b", "c", "d", "e")
val res = letters.find { it.startsWith("c") }
println(res)

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

kotlinString "c"

Пример

Найдем первую запись в словаре, где значение больше 30:

kotlinval ages = mapOf("John" to 25, "Alice" to 30, "Bob" to 35)
val res = ages.find { it.value > 30 }
println(res)

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

kotlinBob=35

Пример

Поиск элемента, которого нет в коллекции (возврат null):

kotlinval numbers = listOf(1, 2, 3, 4, 5)
val res = numbers.find { it > 10 }
println(res)

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

kotlinnull

Пример

Использование явного имени параметра вместо it:

kotlinval numbers = setOf(10, 20, 30, 40, 50)
val res = numbers.find { number -> number > 25 }
println(res)

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

kotlinInt 30

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

  • функцию findLast,
    которая ищет последний элемент, удовлетворяющий условию
  • функцию firstOrNull,
    которая возвращает первый элемент или null
  • функцию filter,
    которая возвращает все элементы, удовлетворяющие условию
  • функцию any,
    которая проверяет, существует ли хотя бы один элемент, удовлетворяющий условию