Ответ
Интерфейс Collection<E> напрямую расширяет интерфейс Iterable<T>. Это делает все коллекции совместимыми с циклом for-each и позволяет получать итератор для обхода элементов.
Ключевые методы Iterable<T>:
Iterator<T> iterator()— возвращает итератор для последовательного доступа к элементам.default void forEach(Consumer<? super T> action)— выполняет действие для каждого элемента.
Пример использования:
Collection<String> collection = List.of("A", "B", "C");
// Использование итератора (метод из Iterable)
Iterator<String> it = collection.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
// Использование for-each (возможно благодаря Iterable)
for (String item : collection) {
System.out.println(item);
}
Таким образом, Iterable<T> является корневым интерфейсом для всех коллекций, предоставляющим базовый механизм обхода.