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