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

Класс Stream

Класс Stream представляет собой последовательность элементов, над которой можно выполнять различные операции: фильтрацию, преобразование, сортировку, агрегацию и другие. Потоки не хранят данные, а лишь обрабатывают их из источника (коллекции, массива, генератора). Поток можно создать из коллекции через метод stream, из массива через Arrays.stream, а также через методы Stream.of, Stream.iterate, Stream.generate. Потоки бывают промежуточными (возвращают новый поток) и терминальными (завершают обработку и возвращают результат). Поток можно использовать только один раз - после терминальной операции он становится недоступным.

Синтаксис

Stream<T> stream = collection.stream(); Stream<T> stream = Stream.of(values); stream.intermediateOperation().terminalOperation();

Пример

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

import java.util.List; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<Integer> numbers = List.of(1, 2, 3, 4, 5); List<Integer> res = numbers.stream() .filter(n -> n % 2 == 0) .collect(Collectors.toList()); System.out.println(res); } }

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

[2, 4]

Пример

Давайте преобразуем каждую строку в верхний регистр и соберём результат в список:

import java.util.List; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<String> list = List.of("a", "b", "c", "d", "e"); List<String> res = list.stream() .map(s -> s.toUpperCase()) .collect(Collectors.toList()); System.out.println(res); } }

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

[A, B, C, D, E]

Пример

Давайте создадим поток напрямую через метод Stream.of и посчитаем количество элементов:

import java.util.stream.Stream; public class Main { public static void main(String[] args) { long res = Stream.of(1, 2, 3, 4, 5) .filter(n -> n > 2) .count(); System.out.println(res); } }

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

3

Пример

Давайте отсортируем строки и соберём их в одну строку через метод collect:

import java.util.List; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<String> list = List.of("abcde", "12345", "bcd"); String res = list.stream() .sorted() .collect(Collectors.joining(", ")); System.out.println(res); } }

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

"12345, abcde, bcd"

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

  • метод of,
    который создаёт поток из переданных элементов
  • метод filter,
    который отбирает элементы по условию
  • метод map,
    который преобразует каждый элемент потока
  • метод collect,
    который собирает элементы потока в коллекцию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить