Не все, что имеет Iterator
, является произвольным доступом List
. Например, Set
не разрешает индексированный доступ. LinkedList
допускает это, но циклы по индексу будут иметь ужасную производительность.
Другие вещи, которые вообще не являются Collection
, имеют Iterator
с или могут быть также представлены как Iterator
. Например, можно представить бесконечную последовательность с Iterator
.
Наличие простого общего интерфейса, который используется для итерации по всем объектам, позволяет использовать методы, которые могут работать с максимально широким спектром объектов.
Кроме того, Vector
и Enumeration
устарели и в основном заменены в современной Java на ArrayList
и Iterator
соответственно.