Являются ли эти две конструкции эквивалентными?
char[] arr = new char[5];
for (char x : arr) {
// code goes here
}
По сравнению с:
char[] arr = new char[5];
for (int i = 0; i < arr.length; i++) {
char x = arr[i];
// code goes here
}
То есть, , если я помещаю точно такой же код в тело обоих циклов (и компилируется), они будут вести себя точно так же.
Полная оговорка: это было вдохновлено другим вопросом (Java: эти два кода одинаковы). Мой ответ там оказался не ответом, но я чувствую, что для точной семантики Java для каждого есть некоторые нюансы, которые нужно указывать.