Что такое интерфейс Iterable

«Что такое интерфейс Iterable» — вопрос из категории Java, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Iterable – это интерфейс, который позволяет объекту быть итерируемым (перебираемым) в цикле for-each. Для этого класс должен реализовать метод iterator(), возвращающий Iterator<T>.

Пример:

class MyCollection : Iterable<String> {
    private val items = listOf("A", "B", "C")

    override fun iterator(): Iterator<String> {
        return items.iterator()
    }
}

// Использование:
val collection = MyCollection()
for (item in collection) {
    println(item) // A, B, C
}

Особенности:

  • Поддерживается List, Set и другими коллекциями.
  • Можно использовать forEach { }.
  • Если объект не Iterable, for-each вызовет ошибку компиляции.