For-Each em Java

Esses dias enquanto fazia meu TCC, cansado de tantos Iterators pensei: PORRA! Esse Java não tem For-Each ou algo parecido?

Uma pesquisa rápida no Google me mostrou que o Java tem sim um loop For-Each. Senti uma breve felicidade quando vi isso, me recordei da época que programava em PHP.

Bom, sem mais delongas vou mostar aqui como usar o bendito.

Se sua estupidez se assemelha à minha, e você percorre arrays da seguinte maneira:

public void comerFrutas (ArrayList<Fruta> frutas) {
    Iterator<Fruta> it = frutas.iterator();
    Fruta f;

    while (it.hasNext()) {
        f= it.next();
        if (f.ehGostosa()) {
            comerFruta(f);
        }
    }
}

Seus problemas acabaram! Agora você pode usar uma solução muito mais elegante e inteligente. Veja o mesmo código acima escrito desta vez com o For-Each:

public void comerFrutas (ArrayList<Fruta> frutas) {
    for (Fruta f : frutas) {
        if (f.ehGostosa()) {
            comerFruta(f);
        }
    }
}

Muito melhor, mais dinâmico, elegante e eficiente. Harder, better, faster, stronger. Não preciso nem ensinar a usar, né? Acho que o exemplo já explica tudo – pelo menos espero.

Atente-se para o fato de que o For-Each do Java não pode te ajudar quando você realmente precisa usar o Iterator. Mas sempre que o que você precisa é percorrer uma ArrayList (ou outra Colletion), o For-Each faz bem o serviço.

Leave a comment

1 Comments.

  1. Finalmente alguém que explique de uma maneira funcional =D
    Valeu brother!

Leave a Reply


[ Ctrl + Enter ]