Преимущества итератора в Java
You can remove objects using an iterator, but you can't do it with a foreach loop
Sometimes is useful to pass an iterator to a function (specially recursive ones)
Colorful Chipmunk