Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

duvida iterator

no codigo digitado pelo professor:

Set<aluno> alunos = javaColecoes.getAlunos();
Iterator<Aluno> iterador = alunos.iterator();
while(iterador.hasNext()){
        Aluno proximo = iterador.next();
        System.out.println(proximo);
}

tentando entender o codigo fico pensando que nao deveria imprimir o primeiro aluno da lista, pois o println esta apenas no "proximo" que recebe um iterador.next, ou seja ele começaria a imprimir do segundo elemento da lista. Pelo resultado da compilação percebo que meu raciocinio esta errado, mas onde eu errei??

Eu nao deveria imprimir no println o elemento atual ao inves de imprimir o proximo?

1 resposta
solução!

Oi Gabriel

Acredito que você se confundiu com o iterator.next()

o iterator.next() retorna o primeiro elemento da coleção; e ele retorna o segundo elemento no segundo loop

Já o iterador.hasNext() não move o ponteiro do iterator, ele apenas descobre se um elemento está presente na próxima posição do índice e retorna um boolean. O ponteiro se moverá para frente com o iterador.next()