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.
Finalmente alguém que explique de uma maneira funcional =D
Valeu brother!