Sobes.tech
Back to questions
Junior — Middle
115

Чем отличается интерфейс итератора от интерфейса коллекции, которая поддерживает итерацию?

Companies where asked
СБЕРСБЕР

Answer from AI

sobes.tech AI

Интерфейс итератора (например, Iterator в Java) предоставляет методы для последовательного обхода элементов коллекции: hasNext(), next(), и опционально remove(). Он отвечает только за сам процесс итерации — как получить следующий элемент и проверить, есть ли еще элементы.

Интерфейс коллекции, поддерживающей итерацию (например, Iterable), предоставляет метод iterator(), который возвращает объект итератора. Таким образом, коллекция — это контейнер, который хранит элементы и умеет создавать итератор для обхода этих элементов.

Пример:

Iterable<String> collection = List.of("a", "b", "c");
Iterator<String> iterator = collection.iterator();
while (iterator.hasNext()) {
    System.out.println(iterator.next());
}

Итого:

  • Коллекция — это структура данных, которая содержит элементы и умеет создавать итератор.
  • Итератор — объект, который позволяет последовательно получить доступ к элементам коллекции.