Функция indexOfFirst
Функция indexOfFirst выполняет поиск первого элемента в коллекции,
удовлетворяющего заданному условию, и возвращает его индекс.
Если элемент не найден, возвращает -1.
Функция принимает предикат в качестве параметра - лямбда-функцию,
которая определяет условие поиска для каждого элемента.
Импорт
// Функция доступна без импорта для всех коллекций
Синтаксис
inline fun <T> Array<out T>.indexOfFirst(
predicate: (T) -> Boolean
): Int
inline fun <T> Iterable<T>.indexOfFirst(
predicate: (T) -> Boolean
): Int
inline fun <K, V> Map<out K, V>.indexOfFirst(
predicate: (Entry<K, V>) -> Boolean
): Int
Пример
Найдем индекс первого четного числа в массиве:
val numbers = arrayOf(1, 3, 5, 2, 4, 6)
val index = numbers.indexOfFirst { it % 2 == 0 }
println(index)
Результат выполнения кода:
Int 3
Пример
Найдем индекс первой строки длиннее 3 символов в списке:
val words = listOf("cat", "dog", "elephant", "fox")
val index = words.indexOfFirst { it.length > 3 }
println(index)
Результат выполнения кода:
Int 2
Пример
Найдем индекс первого элемента с значением больше 10 в множестве:
val set = setOf(5, 8, 12, 15, 3)
val index = set.indexOfFirst { it > 10 }
println(index)
Результат выполнения кода:
Int 2
Пример
Найдем индекс первой записи в карте, где значение содержит букву 'a':
val map = mapOf(1 to "apple", 2 to "banana", 3 to "cherry")
val index = map.indexOfFirst { it.value.contains('a') }
println(index)
Результат выполнения кода:
Int 0
Пример
Если элемент не найден, функция возвращает -1:
val numbers = listOf(1, 3, 5, 7, 9)
val index = numbers.indexOfFirst { it % 2 == 0 }
println(index)
Результат выполнения кода:
Int -1
Для каких типов коллекций работает
Функция indexOfFirst доступна для следующих типов коллекций:
Array- массивы любого типаList- спискиSet- множестваMap- карты (ассоциативные массивы)Iterable- любые итерируемые коллекцииSequence- последовательностиCharArray,IntArray,ByteArrayи другие примитивные массивы
Смотрите также
-
функцию
indexOf,
которая ищет индекс конкретного элемента -
функцию
indexOfLast,
которая ищет индекс последнего элемента по условию -
функцию
find,
которая возвращает первый элемент по условию -
функцию
filter,
которая возвращает все элементы, удовлетворяющие условию