Java: por que não pode iterar em um iterador?
Eu liPor que o Iterator do Java não é um Iterable? ePor que as enumerações não são iteráveis?, mas ainda não entendo por que isso:
void foo(Iterator<X> it) {
for (X x : it) {
bar(x);
baz(x);
}
}
não foi possível. Em outras palavras, a menos que esteja faltando alguma coisa, o acima poderia ter sido um açúcar sintático agradável e válido para:
void foo(Iterator<X> it) {
for (X x; it.hasNext();) {
x = it.next();
bar(x);
baz(x);
}
}