Назад к вопросам
Senior
6
В чём разница между интерфейсами Iterable и Iterator?
Компании, где спрашивали
kode.ru
Ответ от нейросети
sobes.tech AI
Интерфейсы Iterable и Iterator в Java связаны с перебором коллекций, но выполняют разные роли:
-
Iterable— это интерфейс, который реализует коллекция или любой объект, поддерживающий перебор элементов. Он содержит один методiterator(), который возвращает объектIterator. Это позволяет использовать циклfor-eachдля перебора элементов. -
Iterator— это интерфейс, который предоставляет методы для последовательного доступа к элементам коллекции:hasNext()для проверки наличия следующего элемента иnext()для получения этого элемента. Также есть методremove()для удаления текущего элемента.
Пример:
Iterable<String> iterable = List.of("a", "b", "c");
Iterator<String> iterator = iterable.iterator();
while (iterator.hasNext()) {
String element = iterator.next();
System.out.println(element);
}
Итого:
Iterable— источник итератора, позволяет получитьIterator.Iterator— сам механизм перебора элементов коллекции.