Sobes.tech
Назад к вопросам
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 — сам механизм перебора элементов коллекции.