Функция find
Функция find
выполняет поиск первого элемента в коллекции,
который соответствует заданному предикату (условию поиска).
Если элемент найден, функция возвращает его, в противном случае
возвращает null
.
Функция принимает один параметр - предикат в виде лямбда-выражения,
которое определяет условие поиска. Элемент передается в предикат
как параметр it
или через явное имя.
Импорт
import kotlin.collections.find
Синтаксис
// Для Iterable (List, Set)
inline fun <T> Iterable<T>.find(predicate: (T) -> Boolean): T?
// Для Array
inline fun <T> Array<T>.find(predicate: (T) -> Boolean): T?
// Для Map
inline fun <K, V> Map<K, V>.find(predicate: (Map.Entry<K, V>) -> Boolean): Map.Entry<K, V>?
Поддерживаемые типы коллекций
Функция find
работает со следующими типами коллекций:
Array
- массивыList
- спискиSet
- множестваMap
- словари (ассоциативные массивы)Iterable
- любые итерируемые коллекцииSequence
- последовательности
Пример
Найдем первый четный элемент в списке чисел:
val numbers = listOf(1, 3, 5, 2, 4, 6)
val res = numbers.find { it % 2 == 0 }
println(res)
Результат выполнения кода:
Int 2
Пример
Найдем первый элемент, начинающийся с буквы 'c' в массиве строк:
val letters = arrayOf("a", "b", "c", "d", "e")
val res = letters.find { it.startsWith("c") }
println(res)
Результат выполнения кода:
String "c"
Пример
Найдем первую запись в словаре, где значение больше 30:
val ages = mapOf("John" to 25, "Alice" to 30, "Bob" to 35)
val res = ages.find { it.value > 30 }
println(res)
Результат выполнения кода:
Bob=35
Пример
Поиск элемента, которого нет в коллекции (возврат null):
val numbers = listOf(1, 2, 3, 4, 5)
val res = numbers.find { it > 10 }
println(res)
Результат выполнения кода:
null
Пример
Использование явного имени параметра вместо it
:
val numbers = setOf(10, 20, 30, 40, 50)
val res = numbers.find { number -> number > 25 }
println(res)
Результат выполнения кода:
Int 30
Смотрите также
-
функцию
findLast
,
которая ищет последний элемент, удовлетворяющий условию -
функцию
firstOrNull
,
которая возвращает первый элемент илиnull
-
функцию
filter
,
которая возвращает все элементы, удовлетворяющие условию -
функцию
any
,
которая проверяет, существует ли хотя бы один элемент, удовлетворяющий условию