Duvidas sobre como recuperar valores de uma collection

Beleza galera?

Tenho uma dúvida mas numca tive coragem de perguntar.
Pra recuperar os valores de uma colection, eu a transformo em uma classe concreta que implementa collection e uso um for. Mas tem também o iterate que não costumo usar.
Qual a melhor forma de recuperar um valor de uma collection: iterando ou usando simplesmente um loop?

valeu!

Melhor usar o iterator.

Eu acho que deve existir uma estrutura mais complexa que um simples for dentro do iterator mas, de qualquer forma, se o Java já te dá uma forma de percorrer sua lista de maneira simples, não tem porque ficar reinventando a roda né.

usa o for novo do java 5 que fica muito simples…
pra qm nao viu

for ( Objetc o : collection )
//utilizar objeto o agora

tambem funciona pra array…

Como assim, você faz isto?
ArrayList lista = (ArrayList) collection;
Só dá para fazer isso se você souber de antemão que a collection é um ArrayList. Mas não é a maneira recomendada.

Normalmente você usaria um Iterator:

for (Iterator it = collection.iterator(); it.hasNext(); ) {
    Object obj = it.next(); // isso se você não souber que tipo de elementos tem a sua collection
}

Se você, por outro lado, souber que a collection é um ArrayList, pode usar o loop com contador (mas só se você for excessivamente neurótico quanto a velocidade - é 0,01% mais rápido, o que normalmente não vale a pena)

    if (collection instanceof ArrayList) {
        List lista = (List) collection;
        for (int i = 0; i &lt lista.size(); ++i) {
            Object obj = lista.get(i);
        }
    } else {
        for (Iterator it = collection.iterator(); it.hasNext(); ) {
            Object obj = it.next(); // 
        }
    }

Valeu pela resposta galera!