Функция iterator

Функция iterator возвращает объект итератора, который позволяет последовательно перебирать элементы коллекции. Итератор предоставляет методы для проверки наличия следующего элемента и получения текущего элемента. Функция работает с массивами Array, списками List, множествами Set, ассоциативными массивами Map и другими типами коллекций.

Импорт

kotlinimport kotlin.collections.iterator

Синтаксис

kotlinfun <T> Array<out T>.iterator(): Iterator<T>
kotlinfun <T> Iterable<T>.iterator(): Iterator<T>
kotlinfun <K, V> Map<out K, V>.iterator(): Iterator<Map.Entry<K, V>>
kotlinfun CharSequence.iterator(): CharIterator

Пример

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

kotlinval arr = arrayOf(1, 2, 3, 4, 5)
val iter = arr.iterator()

while (iter.hasNext()) {
  val element = iter.next()
  println(element)
}

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

kotlin1
2
3
4
5

Пример

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

kotlinval list = listOf('a', 'b', 'c', 'd', 'e')
val iter = list.iterator()

while (iter.hasNext()) {
  val element = iter.next()
  println(element)
}

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

kotlina
b
c
d
e

Пример

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

kotlinval set = setOf("apple", "banana", "orange")
val iter = set.iterator()

while (iter.hasNext()) {
  val element = iter.next()
  println(element)
}

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

kotlinapple
banana
orange

Пример

Получим итератор для ассоциативного массива и переберем его элементы:

kotlinval map = mapOf(1 to "one", 2 to "two", 3 to "three")
val iter = map.iterator()

while (iter.hasNext()) {
  val entry = iter.next()
  println("${entry.key} = ${entry.value}")
}

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

kotlin1 = one
2 = two
3 = three

Пример

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

kotlinval str = "abcde"
val iter = str.iterator()

while (iter.hasNext()) {
  val char = iter.next()
  println(char)
}

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

kotlina
b
c
d
e

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

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