Ответ
Цикл for-each (enhanced for loop) — это синтаксическая конструкция в Java для итерации по элементам массивов или коллекций, реализующих интерфейс Iterable. Он устраняет необходимость явного использования индексов или итераторов в простых случаях.
Синтаксис:
for (Type element : iterableOrArray) {
// работа с element
}
Примеры:
-
Итерация по массиву:
int[] numbers = {1, 2, 3, 4, 5}; for (int num : numbers) { System.out.println(num * 2); // Выведет: 2, 4, 6, 8, 10 } -
Итерация по коллекции:
List<String> names = List.of("Alice", "Bob", "Charlie"); for (String name : names) { System.out.println("Hello, " + name); }
Ключевые особенности и ограничения:
- Поддерживаемые типы: Работает с массивами и любыми объектами, реализующими интерфейс
java.lang.Iterable(все стандартные коллекции изjava.util). - Только для чтения: Не предоставляет доступа к текущему индексу. Попытка удалить или добавить элемент в коллекцию во время итерации приведёт к
ConcurrentModificationException. - Производительность: Для массивов компилируется в обычный цикл
forс индексом. Для коллекций использует вызовiterator(),hasNext()иnext().
Когда использовать? Для простого последовательного обхода всех элементов. Для модификации коллекции или когда нужен индекс, используйте явный Iterator или классический цикл for.