РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
497 of 1163 menu

Класс IntStream

Класс IntStream - это специальный вид потока для работы с примитивными значениями типа int. Он входит в состав пакета java.util.stream и позволяет избежать затрат на упаковку чисел в объекты Integer. Такой поток можно создать из массива, диапазона чисел или коллекции, а затем обрабатывать его с помощью методов filter, map, sum и других. В отличие от обычного Stream<Integer>, класс IntStream содержит дополнительные методы для числовых операций, например sum, average, min и max.

Синтаксис

IntStream stream = IntStream.range(start, end); IntStream stream = IntStream.of(values);

Основные способы создания потока - методы range, rangeClosed и of. Первый параметр задаёт начало диапазона, второй - конец диапазона.

Пример

Давайте создадим поток из диапазона чисел и выведем каждое из них на экран:

import java.util.stream.IntStream; public class Main { public static void main(String[] args) { IntStream.range(1, 5).forEach(System.out::println); } }

Результат выполнения кода:

1 2 3 4

Пример

Давайте посчитаем сумму чисел от 1 до 5 включительно:

import java.util.stream.IntStream; public class Main { public static void main(String[] args) { int res = IntStream.rangeClosed(1, 5).sum(); System.out.println(res); } }

Результат выполнения кода:

15

Пример

Давайте отфильтруем только чётные числа из потока и соберём их в массив:

import java.util.stream.IntStream; import java.util.Arrays; public class Main { public static void main(String[] args) { int[] res = IntStream.range(1, 10) .filter(n -> n % 2 == 0) .toArray(); System.out.println(Arrays.toString(res)); } }

Результат выполнения кода:

[2, 4, 6, 8]

Пример

Давайте преобразуем каждое число потока, умножив его на 2, и найдём среднее значение:

import java.util.stream.IntStream; import java.util.OptionalDouble; public class Main { public static void main(String[] args) { OptionalDouble res = IntStream.of(1, 2, 3, 4, 5) .map(n -> n * 2) .average(); System.out.println(res.getAsDouble()); } }

Результат выполнения кода:

6.0

Смотрите также

  • метод range,
    который создаёт поток чисел в диапазоне
  • метод sum,
    который возвращает сумму чисел потока
  • метод boxed,
    который преобразует поток в Stream
  • класс LongStream,
    который представляет поток длинных чисел
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить