Свойство indices

Свойство indices возвращает объект типа IntRange, который содержит все допустимые индексы коллекции. Для пустой коллекции возвращает пустой диапазон. Доступно для всех коллекций, реализующих интерфейс Collection.

Синтаксис

kotlinval Collection<*>.indices: IntRange

Пример

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

kotlinval list = listOf("a", "b", "c", "d", "e")
val res = list.indices
println(res)

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

kotlinIntRange 0..4

Пример

Получим индексы пустого списка:

kotlinval emptyList = emptyList<String>()
val res = emptyList.indices
println(res)

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

kotlinIntRange 0..-1

Пример

Использование indices для итерации по индексам коллекции:

kotlinval numbers = listOf(10, 20, 30, 40, 50)

for (index in numbers.indices) {
  println("Index: $index, Value: ${numbers[index]}")
}

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

kotlinIndex: 0, Value: 10
Index: 1, Value: 20
Index: 2, Value: 30
Index: 3, Value: 40
Index: 4, Value: 50

Пример

Проверка, что индекс находится в допустимом диапазоне:

kotlinval chars = listOf('a', 'b', 'c')
val indexToCheck = 2

if (indexToCheck in chars.indices) {
  println("Index $indexToCheck is valid")
} else {
  println("Index $indexToCheck is invalid")
}

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

kotlinIndex 2 is valid

Пример

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

kotlinval array = arrayOf(1, 2, 3, 4, 5)
val res = array.indices
println(res)

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

kotlinIntRange 0..4

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

  • свойство lastIndex,
    которое возвращает последний индекс коллекции
  • функцию withIndex,
    которая возвращает итератор по парам индекс-значение
  • функцию forEachIndexed,
    которая выполняет действие для каждого элемента с его индексом