Duvida no for

pessoal estou com uma dúvida sobre o Enhanced for Loop do java 5

eu posso iterar uma coleção com ele tipo arraylist, set etc… ?? ou só serve p array ??

obrigado !

Pode usar sem problemas, desde que seja uma coleção tipada…

ArrayList<ItemPedido> lista = new ArrayList<ItemPedido>();
...
for (ItemPedido item : lista) {
   ...
}

Você pode usar com classes do tipo Collection, Arrays e classes que implementem a interface Iterator (As classes Collection já implementam esta interface!!). E ela não obriga que a Coleção seja tipada, porém caso não seja, o retorno será um Object e caso seja, o retorno será do tipo declarado!! Exemplo:


   List lista1 = new ArrayList();
   lista1.add("Oi");
   lista1.add("Bom dia");
   
   for(Object obj : lista1){
      System.out.println(obj);
   }
   
   List<String> lista2 = new ArrayList<String>();
   lista2.add("Aew");
   lista2.add("^_^");
   
   for(String str : lista2){
      System.out.println(str);
   }

Olá bfurlaneto,

O enhanced for do Java 5 itera sobre qualquer objeto que implemente a interface java.lang.Iterable e os arrays. A interface Collection herda de Iterable, por isso todas as classes que a implementam (tipo o ArrayList) também são iteráveis. E sabendo disso, você também pode criar uma classe sua compatível com o enhanced for. :wink:

Até mais,