Sobes.tech
Junior — Middle
120

Оё метавонед фарқият байни интерфейсҳои Iterator ва Iterable ва чӣ гуна онҳо бо ҳам муошират мекунанд, шарҳ диҳед?

Ширкатҳо дар куҷо пурсиданд
СБЕРСБЕР
ТОП КЕЙС

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