Функция findLast

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

Импорт

kotlinimport kotlin.collections.findLast

Синтаксис

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

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

Функция findLast доступна для следующих типов коллекций:

Пример

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

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

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

kotlinInt 8

Пример

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

kotlinval words = arrayOf("apple", "banana", "avocado", "orange", "apricot")
val res = words.findLast { it.startsWith("a") }
println(res)

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

kotlinString "apricot"

Пример

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

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

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

kotlinCharlie=40

Пример

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

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

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

kotlinnull

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

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