Функция indexOfFirst

Функция indexOfFirst выполняет поиск первого элемента в коллекции, удовлетворяющего заданному условию, и возвращает его индекс. Если элемент не найден, возвращает -1. Функция принимает предикат в качестве параметра - лямбда-функцию, которая определяет условие поиска для каждого элемента.

Импорт

kotlin// Функция доступна без импорта для всех коллекций

Синтаксис

kotlininline fun <T> Array<out T>.indexOfFirst(
  predicate: (T) -> Boolean
): Int
kotlininline fun <T> Iterable<T>.indexOfFirst(
  predicate: (T) -> Boolean
): Int
kotlininline fun <K, V> Map<out K, V>.indexOfFirst(
  predicate: (Entry<K, V>) -> Boolean
): Int

Пример

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

kotlinval numbers = arrayOf(1, 3, 5, 2, 4, 6)
val index = numbers.indexOfFirst { it % 2 == 0 }
println(index)

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

kotlinInt 3

Пример

Найдем индекс первой строки длиннее 3 символов в списке:

kotlinval words = listOf("cat", "dog", "elephant", "fox")
val index = words.indexOfFirst { it.length > 3 }
println(index)

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

kotlinInt 2

Пример

Найдем индекс первого элемента с значением больше 10 в множестве:

kotlinval set = setOf(5, 8, 12, 15, 3)
val index = set.indexOfFirst { it > 10 }
println(index)

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

kotlinInt 2

Пример

Найдем индекс первой записи в карте, где значение содержит букву 'a':

kotlinval map = mapOf(1 to "apple", 2 to "banana", 3 to "cherry")
val index = map.indexOfFirst { it.value.contains('a') }
println(index)

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

kotlinInt 0

Пример

Если элемент не найден, функция возвращает -1:

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

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

kotlinInt -1

Для каких типов коллекций работает

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

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

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