Sobes.tech
Junior — Middle
118

Puteți explica diferențele dintre interfețele Iterator și Iterable și modul în care acestea interacționează între ele?

Companiile au fost întrebate
СБЕРСБЕР
ТОП КЕЙС

Răspuns de la AI

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 — инструмент для перебора этой коллекции.