Consider the following scenario.
List list = new ArrayList<>();
Now I added the String values for this li
String
Simple answers: No and no.
Internally the for-each loop creates an Iterator to iterate through the collection.
for-each
Iterator
The advantage of using the Iterator explicitly is that you can access the Iterators method.