Функция indexOfLast
Функция indexOfLast выполняет поиск последнего элемента
в коллекции, который удовлетворяет заданному условию-предикату.
Возвращает индекс найденного элемента или -1, если
ни один элемент не удовлетворяет условию. Функция применяется
к массивам Array, спискам List и другим
коллекциям, поддерживающим индексацию.
Синтаксис
// Для Array<T>
inline fun <T> Array<out T>.indexOfLast(
predicate: (T) -> Boolean
): Int
// Для List<T>
inline fun <T> List<T>.indexOfLast(
predicate: (T) -> Boolean
): Int
// Для CharSequence
inline fun CharSequence.indexOfLast(
predicate: (Char) -> Boolean
): Int
Пример
Найдем индекс последнего четного числа в массиве:
val numbers = arrayOf(1, 3, 5, 2, 4, 6, 7)
val res = numbers.indexOfLast { it % 2 == 0 }
println(res)
Результат выполнения кода:
Int 5
Пример
Найдем индекс последней строки, начинающейся на букву 'a':
val words = listOf("apple", "banana", "avocado", "orange", "apricot")
val res = words.indexOfLast { it.startsWith("a") }
println(res)
Результат выполнения кода:
Int 4
Пример
Найдем индекс последнего символа-цифры в строке:
val text = "abc123def456"
val res = text.indexOfLast { it.isDigit() }
println(res)
Результат выполнения кода:
Int 11
Пример
Если элемент не найден, функция возвращает -1:
val numbers = listOf(1, 3, 5, 7, 9)
val res = numbers.indexOfLast { it > 10 }
println(res)
Результат выполнения кода:
Int -1
Для каких типов коллекций работает
Функция indexOfLast доступна для следующих типов коллекций:
Array- массивы любых типовList- списки элементовMutableList- изменяемые спискиCharSequence- строки и последовательности символовString- строки
Для Set и Map функция недоступна, так как
эти коллекции не поддерживают индексацию элементов.
Смотрите также
-
функцию
indexOf,
которая ищет первый индекс элемента -
функцию
indexOfFirst,
которая ищет первый элемент по условию -
функцию
findLast,
которая возвращает последний элемент по условию