Метод forEach
Метод forEach класса IntStream выполняет заданное действие для каждого элемента потока. В параметр мы передаем объект IntConsumer, который описывает действие, применяемое к каждому элементу. Метод является терминальной операцией: после его вызова поток считается использованным и повторно использован быть не может. Порядок обхода элементов для последовательного потока совпадает с порядком их следования, а для параллельного потока порядок не гарантируется.
Синтаксис
IntStream.forEach(IntConsumer action)
Пример
Давайте переберем все элементы потока и выведем каждый из них в консоль:
import java.util.stream.IntStream;
public class Main
{
public static void main(String[] args)
{
IntStream stream = IntStream.of(1, 2, 3, 4, 5);
stream.forEach(n -> System.out.println(n));
}
}
Результат выполнения кода:
1
2
3
4
5
Пример
Давайте передадим в метод forEach ссылку на метод System.out.println:
import java.util.stream.IntStream;
public class Main
{
public static void main(String[] args)
{
IntStream.range(1, 6).forEach(System.out::println);
}
}
Результат выполнения кода:
1
2
3
4
5
Пример
Давайте накопим сумму всех элементов потока внутри метода forEach:
import java.util.stream.IntStream;
public class Main
{
public static void main(String[] args)
{
int[] res = {0};
IntStream.of(1, 2, 3, 4, 5).forEach(n -> res[0] += n);
System.out.println(res[0]);
}
}
Результат выполнения кода:
15
Смотрите также
-
класс
IntStream,
который представляет поток целых чисел -
метод
filter,
который отбирает элементы по условию -
метод
map,
который преобразует элементы потока -
метод
forEachOrdered,
который соблюдает порядок элементов