Ответ
Цикл for-each (enhanced for loop) в Java предоставляет краткий синтаксис для итерации по элементам массивов или коллекций, реализующих интерфейс Iterable<T>.
Принцип работы:
- Для коллекций компилятор преобразует цикл в использование
Iterator, полученного вызовом методаiterator(). - Для массивов цикл преобразуется в обычный индексный
for.
Примеры:
// Итерация по коллекции (List)
List<String> names = List.of("Alice", "Bob", "Charlie");
for (String name : names) {
System.out.println(name);
}
// Итерация по массиву
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
System.out.println(num);
}
Ограничения и особенности:
- Нельзя модифицировать коллекцию (добавлять/удалять элементы) во время итерации, иначе будет выброшено
ConcurrentModificationException. - Нет прямого доступа к индексу текущего элемента. Если индекс нужен, используйте обычный цикл
for. - Работает только с массивами или объектами, реализующими
Iterable<T>.