Java para cada vs regular para - eles são equivalentes?
Essas duas construções são equivalentes?
char[] arr = new char[5];
for (char x : arr) {
// code goes here
}
Comparado com:
char[] arr = new char[5];
for (int i = 0; i < arr.length; i++) {
char x = arr[i];
// code goes here
}
Isso é,se eu colocar exatamente o mesmo código no corpo dos dois loops (e eles compilarem), eles se comportarão exatamente da mesma maneira ???
Isenção total: isso foi inspirado em outra pergunta (Java: esses 2 códigos são iguais) Minha resposta acabou não sendo a resposta, mas sinto que a semântica exata do Java para cada um tem algumas nuances que precisam ser destacadas.