Percorrendo um ArrayList - For vs Iterator

A gente já sabe fazer isso com o for (usando forEach).

Mas podemos iretar com os "iterators".

import java.util.Iterator;
//precisamos passar o tipo de Array, pois é um método genérico.
Iterator<String> it = nomesArrayList.iterator();

while (it.hasNext()) {
    String itemAtual = it.next();
    System.out.println(itemAtual);
}

Esse it, possui um método hasNext(), que funcionará como um "ponteiro", percorrendo da esquerda para direita. E enquanto tiver um next (um item), ele continuará iterando.

Atualizado