Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Java: for-each, Java, iteration, enhanced for loop

Как работает for-each в Java?

Проверяет понимание синтаксиса и принципов работы цикла for-each в Java, используемого для итерации по коллекциям и массивам.

Короткий ответ

Цикл for-each (улучшенный for) в Java используется для последовательного перебора элементов массивов и коллекций без явного использования индексов или итераторов. Он упрощает код и снижает риск ошибок, связанных с выходом за границы. Однако его нельзя использовать для модификации коллекции во время итерации или для доступа к индексу элемента.

Длинный ответ

Как работает for-each в Java

Цикл for-each, также известный как улучшенный цикл for, был введен в Java 5 для упрощения итерации по массивам и коллекциям. Он предоставляет более чистый и читаемый синтаксис по сравнению с традиционным циклом for, скрывая детали управления индексами или итераторами.

Синтаксис и примеры

Синтаксис цикла for-each выглядит следующим образом:

for (Тип переменная : коллекция_или_массив) {
    // тело цикла
}

Пример с массивом:

int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
    System.out.println(num);
}

Пример с коллекцией:

List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
for (String name : names) {
    System.out.println(name);
}

Как это работает под капотом

Для массивов компилятор Java преобразует for-each в обычный цикл for с индексом. Для коллекций, реализующих интерфейс Iterable, for-each использует итератор, вызывая методы hasNext() и next() неявно. Это означает, что коллекция не должна изменяться во время итерации, иначе возникнет ConcurrentModificationException.

Ограничения

  • Нет доступа к индексу элемента.
  • Нельзя удалять или добавлять элементы в коллекцию во время итерации.
  • Нельзя изменить сам элемент массива (только его свойства, если это объект).

Вывод

Цикл for-each идеален для простого перебора элементов, когда не требуется модификация коллекции или доступ к индексу. Он повышает читаемость кода и уменьшает вероятность ошибок, поэтому его следует использовать по умолчанию для итерации по массивам и коллекциям в Java.

Уровень

  • Рейтинг:

    4

  • Сложность:

    2

Навыки

  • Java

    Java

Ключевые слова

#for-each

#Java

#iteration

#enhanced for loop

Подпишись на Java Developer в телеграм