Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Iterator iterador

Fiz assim

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

Tem algum vantagem em fazer como no exemplo , assim:

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

while (it.hasNext()) {

    System.out.println(it.next());
}
2 respostas
solução!

Olá, James. No primeiro caso, você está trabalhando com uma implementação antiga do Iterator, da época que ainda não existia Generics. Esse iterador trabalha com coleções de Objects, o que traz a necessidade de você fazer casting para cada elemento.

Iterator iterador = letras.iterator();
    while(iterador.hasNext()) {
            Character letra = (Character) iterator.next();
    }

Já no segundo, com o uso do Generics, você está explicitando que a sua coleção é de apenas de um tipo específico, o que tira a necessidade de realizar o casting.

Iterator<Character> iterador = letras.iterator();
    while(iterador.hasNext()) {
          Character letra = iterator.next();
    }

No seu exemplo, você pode usar qualquer um que não terá diferença, mas em códigos mais complicados, ter de se preocupar com casting é uma dor de cabeça.

Obrigado Fernando, agora faz sentido.