The Advantage with iterator is you can get list of objects irrespective of the data structure. if you use for loop then you have to write a seperate for loop for data structure.
The answer is that when using "for/each", you don't actually have access to the Iterator; the loop construct looks directly at the collection or array itself. So let's say you need to do something like this:
Do you see how we're using the loop counter to access two different arrays? You can't do that with a single for/each loop; you'd have to write two loops. Therefore, don't use for/each when you need to iterate over multiple collections -- because you can't!