Функция firstOrNull

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

Синтаксис

kotlin// Для коллекций с элементами любого типа
inline fun <T> Iterable<T>.firstOrNull(): T?

// С предикатом (условием поиска)
inline fun <T> Iterable<T>.firstOrNull(
  predicate: (T) -> Boolean
): T?

Пример

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

kotlinval numbers = listOf(1, 3, 5, 8, 9, 12)
val res = numbers.firstOrNull { it % 2 == 0 }
println(res)

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

kotlinInt 8

Пример

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

kotlinval words = arrayOf("apple", "banana", "cherry", "date")
val res = words.firstOrNull { it.startsWith("c") }
println(res)

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

kotlinString "cherry"

Пример

Поиск первого элемента в Set, который больше определенного значения:

kotlinval numberSet = setOf(10, 20, 30, 40, 50)
val res = numberSet.firstOrNull { it > 25 }
println(res)

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

kotlinInt 30

Пример

Поиск первого значения в Map, удовлетворяющего условию:

kotlinval map = mapOf("a" to 1, "b" to 2, "c" to 3, "d" to 4)
val res = map.values.firstOrNull { it > 2 }
println(res)

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

kotlinInt 3

Пример

Когда элемент не найден, функция возвращает null:

kotlinval numbers = listOf(1, 3, 5, 7, 9)
val res = numbers.firstOrNull { it % 2 == 0 }
println(res)

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

kotlinnull

Пример

Использование с безопасным вызовом для обработки результата:

kotlinval numbers = listOf(1, 2, 3, 4, 5)
val result = numbers.firstOrNull { it > 10 }?.let {
  "Found: $it"
} ?: "Not found"

println(result)

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

kotlinString "Not found"

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

  • функцию first,
    которая возвращает первый элемент или бросает исключение
  • функцию lastOrNull,
    которая возвращает последний элемент или null
  • функцию singleOrNull,
    которая возвращает единственный элемент или null
  • функцию find,
    которая является синонимом firstOrNull