Свойство indices
Свойство indices возвращает объект типа IntRange,
который содержит все допустимые индексы коллекции.
Для пустой коллекции возвращает пустой диапазон.
Доступно для всех коллекций, реализующих интерфейс Collection.
Синтаксис
val Collection<*>.indices: IntRange
Пример
Получим индексы списка строк:
val list = listOf("a", "b", "c", "d", "e")
val res = list.indices
println(res)
Результат выполнения кода:
IntRange 0..4
Пример
Получим индексы пустого списка:
val emptyList = emptyList<String>()
val res = emptyList.indices
println(res)
Результат выполнения кода:
IntRange 0..-1
Пример
Использование indices для итерации по индексам коллекции:
val numbers = listOf(10, 20, 30, 40, 50)
for (index in numbers.indices) {
println("Index: $index, Value: ${numbers[index]}")
}
Результат выполнения кода:
Index: 0, Value: 10
Index: 1, Value: 20
Index: 2, Value: 30
Index: 3, Value: 40
Index: 4, Value: 50
Пример
Проверка, что индекс находится в допустимом диапазоне:
val chars = listOf('a', 'b', 'c')
val indexToCheck = 2
if (indexToCheck in chars.indices) {
println("Index $indexToCheck is valid")
} else {
println("Index $indexToCheck is invalid")
}
Результат выполнения кода:
Index 2 is valid
Пример
Использование с массивом:
val array = arrayOf(1, 2, 3, 4, 5)
val res = array.indices
println(res)
Результат выполнения кода:
IntRange 0..4
Смотрите также
-
свойство
lastIndex,
которое возвращает последний индекс коллекции -
функцию
withIndex,
которая возвращает итератор по парам индекс-значение -
функцию
forEachIndexed,
которая выполняет действие для каждого элемента с его индексом