Функция findLast
Функция findLast выполняет поиск последнего элемента
в коллекции, который соответствует заданному предикату
(условию поиска). Функция принимает в качестве параметра
лямбда-выражение с условием поиска и возвращает последний
найденный элемент или null, если ни один элемент
не удовлетворяет условию.
Импорт
import kotlin.collections.findLast
Синтаксис
// Для Array<T>
inline fun <T> Array<out T>.findLast(
predicate: (T) -> Boolean
): T?
// Для List<T>
inline fun <T> Iterable<T>.findLast(
predicate: (T) -> Boolean
): T?
// Для Set<T>
inline fun <T> Iterable<T>.findLast(
predicate: (T) -> Boolean
): T?
// Для Map<K, V>
inline fun <K, V> Map<out K, V>.findLast(
predicate: (Map.Entry<K, V>) -> Boolean
): Map.Entry<K, V>?
Поддерживаемые типы коллекций
Функция findLast доступна для следующих типов коллекций:
Array- массивыList- спискиSet- множестваMap- словари (ассоциативные массивы)MutableList- изменяемые спискиMutableSet- изменяемые множестваMutableMap- изменяемые словари
Пример
Найдем последний четный элемент в списке чисел:
val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8)
val res = numbers.findLast { it % 2 == 0 }
println(res)
Результат выполнения кода:
Int 8
Пример
Найдем последний элемент, начинающийся на букву 'a' в массиве строк:
val words = arrayOf("apple", "banana", "avocado", "orange", "apricot")
val res = words.findLast { it.startsWith("a") }
println(res)
Результат выполнения кода:
String "apricot"
Пример
Найдем последнюю запись в словаре, где значение больше 30:
val ages = mapOf("John" to 25, "Alice" to 30, "Bob" to 35, "Charlie" to 40)
val res = ages.findLast { it.value > 30 }
println(res)
Результат выполнения кода:
Charlie=40
Пример
Поиск элемента, которого нет в коллекции (возвращает null):
val numbers = listOf(1, 3, 5, 7, 9)
val res = numbers.findLast { it % 2 == 0 }
println(res)
Результат выполнения кода:
null
Смотрите также
-
функцию
find,
которая ищет первый элемент, удовлетворяющий условию -
функцию
firstOrNull,
которая возвращает первый элемент илиnull -
функцию
lastOrNull,
которая возвращает последний элемент илиnull -
функцию
filter,
которая возвращает все элементы, удовлетворяющие условию