[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-collections-kak-mezhdu-soboy-svyazany-iterable-i-iterator":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":18,"progress":19,"seo":20},432,"kak-mezhdu-soboy-svyazany-iterable-i-iterator",12,"collections","Collections","📚","Как между собой связаны Iterable и Iterator","`Iterable` — это интерфейс с единственным абстрактным методом `iterator()`, который возвращает объект `Iterator`. Связь между ними — это паттерн: `Iterable` является фабрикой для `Iterator`.\n\nИнтерфейс `Iterable` реализуют все коллекции JCF (через `Collection`). Каждый вызов `iterator()` создает новый экземпляр итератора, указывающий на начало коллекции. Это позволяет одновременно иметь несколько независимых итераторов для одной и той же коллекции.\n\nНачиная с Java 8, `Iterable` также содержит default-методы `forEach(Consumer)` и `spliterator()`, что расширяет его возможности для работы со Stream API.\n\n> **На собеседовании:** скажите, что Iterable — это фабрика для Iterator через метод iterator(). Упомяните, что именно реализация Iterable позволяет использовать объект в for-each.","","junior",[15,16,17],"основы","interface","jcf",[],null,{"title":21,"description":22,"ogTitle":21,"ogDescription":23,"keywords":24,"schemaAnswer":31,"featuredSnippetReady":32},"Связь Iterable и Iterator в Java — Gymterview","Iterable — интерфейс с методом iterator(), возвращающим Iterator. Iterable — фабрика для Iterator. Каждый вызов iterator() создаёт новый экземпляр итератора.","Iterable — фабрика для Iterator через метод iterator(). Все коллекции JCF реализуют Iterable.",[25,26,27,28,29,30],"Iterable","Iterator","iterator()","for-each","Java","собеседование","Iterable — интерфейс с методом iterator(), который возвращает Iterator. Iterable — фабрика для Iterator. Все коллекции JCF реализуют Iterable через Collection. Каждый вызов iterator() создаёт новый независимый экземпляр итератора.",true]