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

Loop na execução de código

Olá galera,

Tentei executar o exemplo da aula de forma "direta" com o código abaixo:

while(letras.iterator().hasNext()) {
            System.out.println(letras.iterator().next());          
        }

Ao executar dessa forma ele entra em loop de impressão do "A". Na prática, o que muda para o exemplo abaixo?

while(it.hasNext()) {
          System.out.println(it.next());          
      }
1 resposta
solução!

Olá Rogerio!

No primeiro caso você cria um Iterator antes:

 Iterator<String> it = letras.iterator();

E depois itera sobre ele:

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

Como você definiu primeiro o que estará dentro do Iterator ele irá printar normalmente.

Já no segundo caso, você faz dessa forma:

while(letras.iterator().hasNext()) {
    System.out.println(letras.iterator().next());          
 }

Observe que a cada iteração você chama uma nova instancia de Iterator, isso faz com que você sempre fique preso no A e não prossiga. A cada passagem no While ele está reiniciando sua lista.

Espero que tenha ajudado! ^^

Bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software