Mais
Como funciona o Java 'para cada' loop?
Considere:
List<String> someList = new ArrayList<String>();
// add "monkey", "donkey", "skeleton key" to someList
for (String item : someList) {
System.out.println(item);
}
Como seria o laço equivalente "para" sem utilizar a sintaxe para cada?
1437
3
Note que se você precisa utilizar
i.remove();
em seu loop, ou acessar o iterador real de alguma forma, você não pode utilizar a expressãofor ( : )
, já que o iterador real é meramente inferido.Como foi observado por Denis Bueno, este código funciona para qualquer objeto que implemente a interface iterável.
Além disso, se o lado direito do
for (:)
idioma é um objetoarray
em vez de um objetoIterable
, o código interno utiliza um contador de índice int e verifica contraarray.length
em vez disso. Veja a Especificação da Linguagem Java.O laço para cada em Java usa o mecanismo de iterador subjacente. Portanto, é idêntico ao seguinte:
Aqui está uma expressão equivalente.