Цикл Java For-each

Начиная с Java 1.5 цикл for-each или улучшенный цикл for — это краткий способ итерации по элементам массива и коллекции. Проще говоря, цикл for-each — это короткая форма цикла for без использования переменной-счетчика индекса.

Отсутствие переменной счетчика делает код более читаемым и менее подверженным ошибкам. Это устраняет возможность известного исключения ArrayIndexOutOfBoundsException, которое часто встречается в традиционном цикле for.

1. Синтаксис

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

Цикл Java For-each0

В следующем коде массив содержит элементы типа T. Элемент — это переменная типа T, и в каждой итерации элемент ссылается на текущий элемент в массиве.

for(T item : array) {...}

Для примитивных типов, типов-оболочек и всех других типов классов используется один и тот же синтаксис.

2. Итерация по массиву

Следующая программа Java перебирает и выводит все элементы массива целочисленного типа numArray.

int[] numArray = {10, 20, 30, 40};for(int item : numArray) {System.out.println(item);}

Программа перебирает массив за четыре итерации.

  • В первой итерации значение элемента равно 10.
  • Во второй итерации значение элемента равно 20.
  • В третьей итерации значение элемента равно 30.
  • В четвертой и последней итерации значение элемента равно 40.

Вывод программы:

10203040

2. Итерация по списку

Логика итерации остается прежней и для типов коллекций. Нам нужно только передать переменную коллекции вместо массива.

List<String> list = List.of("A", "B", "C");for(String item : list) {System.out.println(item);}

Вывод программы:

ABC

4. Использование метода forEach()

Начиная с Java 8, метод forEach() — это еще один способ перебрать все элементы массива коллекции, очень похожий на цикл for-each. Метод forEach() принимает действие Consumer, которое он применяет к каждому элементу коллекции или массива.

Например, мы можем переписать предыдущий пример итерации списка следующим образом. System.out::println — это ссылка на метод и имеет тип действия Consumer. Вывод программы тот же.

List<String> list = List.of("A", "B", "C");list.forEach(System.out::println);

Напишите мне свои вопросы, связанные с операторами управления потоком цикла for-each в Java.

Прокрутить вверх