Colecoes

Iterator

Conceito

Java Collections - Interator

Um Iterator é um objeto que pode ser usado para percorrer coleções, como ArrayList e HashSet. É chamado de "iterador" porque "iterativo" é o termo técnico para loop.

Não é muito comum mas vamos imaginar que você queira pegar o primeiro elemento de um Set ou até mesmo adicionar ou remover elementos dentro de um loop? Bem o que posso te dizer é que comportamentos inesperados podem acontecer.

Iteracao.java
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set;

public class Iteracao {
    public static void main(String[] args) {
        Set<String> alunos = new LinkedHashSet<>();
        alunos.add("marcos");
        alunos.add("julia");
        alunos.add("felipe");
        alunos.add("lucas");
        alunos.add("rafaela");

        //String aluno = alunos.get(0); //ops, não sou uma lista

        Iterator<String> iterator = alunos.iterator();
        String aluno = iterator.next();
        System.out.println(aluno);

        while (iterator.hasNext()) { // ainda temos mais alunos ??
            aluno = iterator.next();
            if(aluno.equals("rafaela")){
                //como é possível ??
                alunos.add("joana");
            }
            System.out.println(aluno);
        }

        System.out.println(alunos.size());
        System.out.println(alunos);
    }
}