Когда стоит использовать Iterable

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

Ответ

Iterable стоит использовать, когда нужно предоставить последовательный доступ к элементам коллекции без раскрытия её внутренней структуры. Это полезно для:

  1. Ленивой загрузки (например, чтение данных из сети/БД по мере необходимости).
  2. Работы с большими коллекциями, чтобы избежать загрузки всех элементов в память.
  3. Сокрытия реализации коллекции, предоставляя только итератор.

Пример:

fun fetchData(): Iterable<String> = object : Iterable<String> {
    override fun iterator() = object : Iterator<String> {
        private var count = 0
        override fun hasNext() = count < 3
        override fun next() = "Item ${count++}"
    }
}

// Использование:
fetchData().forEach { println(it) }

⚠️ Если нужны операции в памяти (например, filter, map), лучше использовать Sequence или List.