Назад к вопросам
СБЕР
Junior — Middle
64
Можете объяснить различия между интерфейсами Iterator и Iterable и как они взаимодействуют друг с другом?
Компании, где спрашивали
ТОП КЕЙС
Ответ от нейросети
sobes.tech AI
В Java интерфейс Iterable представляет коллекцию, элементы которой можно перебрать. Он содержит один метод iterator(), который возвращает объект типа Iterator.
Интерфейс Iterator предоставляет методы для последовательного обхода элементов коллекции:
hasNext()— проверяет, есть ли следующий элемент.next()— возвращает следующий элемент.remove()— удаляет текущий элемент (опционально).
Взаимодействие:
- Класс, реализующий Iterable, предоставляет метод
iterator(), который возвращает объект Iterator. - Этот Iterator используется для обхода элементов коллекции.
Пример:
List<String> list = Arrays.asList("a", "b", "c");
for (String s : list) { // for-each использует Iterable
System.out.println(s);
}
// Аналогично с Iterator
Iterator<String> it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
Таким образом, Iterable — это коллекция, которую можно перебрать, а Iterator — инструмент для перебора этой коллекции.