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

Функция withIndex

Функция withIndex возвращает итератор, который предоставляет доступ к элементам коллекции вместе с их индексами. Каждый элемент представляется в виде объекта IndexedValue, содержащего свойства index (индекс) и value (значение элемента). Функция работает лениво, не создавая новую коллекцию в памяти.

Импорт

import kotlin.collections.withIndex

Синтаксис

fun <T> Array<out T>.withIndex(): Iterable<IndexedValue<T>>
fun <T> Iterable<T>.withIndex(): Iterable<IndexedValue<T>>
fun <K, V> Map<out K, V>.withIndex(): Iterable<IndexedValue<Map.Entry<K, V>>>

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

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

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

Пример

Использование withIndex с массивом:

val arr = arrayOf('a', 'b', 'c', 'd', 'e') for ((index, value) in arr.withIndex()) { 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

Пример

Использование withIndex со списком:

val list = listOf(10, 20, 30, 40, 50) val indexedValues = list.withIndex() indexedValues.forEach { println("${it.index}: ${it.value}") }

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

0: 10 1: 20 2: 30 3: 40 4: 50

Пример

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

val set = setOf("apple", "banana", "cherry") set.withIndex().forEach { (index, value) -> println("Element at $index is $value") }

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

Element at 0 is apple Element at 1 is banana Element at 2 is cherry

Пример

Использование withIndex со словарем:

val map = mapOf("a" to 1, "b" to 2, "c" to 3) for ((index, entry) in map.withIndex()) { println("Index: $index, Key: ${entry.key}, Value: ${entry.value}") }

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

Index: 0, Key: a, Value: 1 Index: 1, Key: b, Value: 2 Index: 2, Key: c, Value: 3

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

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