НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
469 of 1310 menu

Функция forEachIndexed

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

Импорт

import kotlin.collections.forEachIndexed

Синтаксис

inline fun <T> Array<out T>.forEachIndexed( action: (index: Int, T) -> Unit ): Unit
inline fun <T> Iterable<T>.forEachIndexed( action: (index: Int, T) -> Unit ): Unit
inline fun <K, V> Map<out K, V>.forEachIndexed( action: (index: Int, Entry<K, V>) -> Unit ): Unit

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

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

  • Array - массивы элементов
  • List - списки элементов
  • Set - множества элементов
  • Map - ассоциативные массивы (словари)
  • Iterable - любые итерируемые коллекции
  • Sequence - последовательности

Пример

Переберем массив строк с выводом индекса и значения каждого элемента:

val arr = arrayOf("a", "b", "c", "d", "e") arr.forEachIndexed { index, value -> println("Index: $index, Value: $value") }

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

Index: 0, Value: a Index: 1, Value: b Index: 2, Value: c Index: 3, Value: d Index: 4, Value: e

Пример

Переберем список чисел с доступом к индексу и значению:

val numbers = listOf(10, 20, 30, 40, 50) numbers.forEachIndexed { idx, num -> println("Element at position $idx is $num") }

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

Element at position 0 is 10 Element at position 1 is 20 Element at position 2 is 30 Element at position 3 is 40 Element at position 4 is 50

Пример

Использование forEachIndexed с множествами:

val set = setOf("x", "y", "z") set.forEachIndexed { index, element -> println("Set element $index: $element") }

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

Set element 0: x Set element 1: y Set element 2: z

Пример

Перебор ассоциативного массива с использованием forEachIndexed:

val map = mapOf("key1" to 100, "key2" to 200, "key3" to 300) map.forEachIndexed { index, entry -> println("Index: $index, Key: ${entry.key}, Value: ${entry.value}") }

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

Index: 0, Key: key1, Value: 100 Index: 1, Key: key2, Value: 200 Index: 2, Key: key3, Value: 300

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

  • функцию forEach,
    которая выполняет перебор элементов без доступа к индексу
  • функцию withIndex,
    которая возвращает итератор с доступом к индексу и значению
  • функцию mapIndexed,
    которая преобразует коллекцию с доступом к индексу
  • функцию filterIndexed,
    которая фильтрует коллекцию с доступом к индексу
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить