Если посмотреть на спецификацию Java API для интерфейса Iterator
, то есть объяснение различий между Enumeration
:
Итераторы отличаются от
перечисления двумя способами:
- Итераторы позволяют вызывающей стороне удалять элементы из нижележащего
сбор во время итерации с
четко определенная семантика.
- Имена методов были улучшены.
Суть в том, что и Enumeration
, и Iterator
дадут последовательные элементы, но Iterator
улучшен таким образом, что имена методов короче, и имеет дополнительный метод remove
. Вот параллельное сравнение:
Enumeration Iterator
---------------- ----------------
hasMoreElement() hasNext()
nextElement() next()
N/A remove()
Как также упомянуто в Спецификациях API Java, для более новых программ предпочтение должно быть отдано Iterator
, а не Enumeration
, поскольку «Итератор занимает место перечисления в структуре коллекций Java». (Из Iterator
спецификаций.)