Интерфейс Iterable

Интерфейс Iterable представляет коллекцию элементов, которая может быть последовательно перебрана с помощью итератора. Это базовый интерфейс для всех коллекций в Kotlin, поддерживающих последовательный доступ к элементам. Параметр T указывает тип элементов коллекции.

Импорт

kotlinimport kotlin.collections.Iterable

Синтаксис

kotlininterface Iterable<out T>

Пример

Создадим список и выведем все его элементы с помощью цикла for:

kotlinval numbers: List<Int> = listOf(1, 2, 3, 4, 5)

for (num in numbers) {
  println(num)
}

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

kotlin1
2
3
4
5

Пример

Используем метод iterator для явного получения итератора:

kotlinval chars: List<Char> = listOf('a', 'b', 'c', 'd', 'e')
val iterator: Iterator<Char> = chars.iterator()

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

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

kotlina
b
c
d
e

Пример

Используем метод forEach для перебора элементов:

kotlinval numbers: Iterable<Int> = setOf(10, 20, 30, 40, 50)

numbers.forEach { number ->
  println(number * 2)
}

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

kotlin20
40
60
80
100

Пример

Проверим, содержит ли коллекция определенный элемент с помощью метода contains:

kotlinval list: Iterable<String> = listOf("apple", "banana", "orange")
val containsBanana: Boolean = list.contains("banana")
val containsGrape: Boolean = list.contains("grape")

println("Contains banana: $containsBanana")
println("Contains grape: $containsGrape")

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

kotlinContains banana: true
Contains grape: false

Пример

Используем метод all для проверки, что все элементы удовлетворяют условию:

kotlinval numbers: Iterable<Int> = listOf(2, 4, 6, 8, 10)
val allEven: Boolean = numbers.all { it % 2 == 0 }
val allGreaterThanFive: Boolean = numbers.all { it > 5 }

println("All even: $allEven")
println("All greater than 5: $allGreaterThanFive")

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

kotlinAll even: true
All greater than 5: false

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

  • интерфейс Collection,
    который расширяет Iterable и добавляет методы для работы с коллекциями
  • интерфейс List,
    который представляет упорядоченную коллекцию с доступом по индексу
  • интерфейс Set,
    который представляет коллекцию уникальных элементов
  • интерфейс Sequence,
    который представляет ленивую последовательность элементов