1270. Что такое Stream в контексте Stream API?
В контексте Stream API в Java, Stream - это последовательный поток элементов, которые можно получить из источника данных, например, коллекции, массива или файла. Stream можно фильтровать, преобразовывать и обрабатывать параллельно. Stream API был введен в Java 8 и облегчает обработку и анализ больших объемов данных, уменьшает количество кода и позволяет писать более читабельный и функциональный код. Например, вы можете использовать Stream API для фильтрации списка объектов по определенному критерию и получения нового списка, содержащего только отфильтрованные элементы. Работа со Stream API требует различных методов, таких как filter(), map(), reduce() и других, которые можно использовать для обработки данных.
Функция filter() отфильтровывает элементы, которые не соответствуют определенному условию:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
List<Integer> even = numbers.stream()
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
System.out.println(even); // [2, 4, 6]
Функция map() применяет функцию к каждому элементу потока и создает новый поток с преобразованными элементами:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
List<Integer> squares = numbers.stream()
.map(n -> n * n)
.collect(Collectors.toList());
System.out.println(squares); // [1, 4, 9, 16, 25, 36]
Функция reduce() используется для выполнения агрегирующих операций на элементах потока и возвращает единственный результат:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
int sum = numbers.stream()
.reduce(0, (a, b) -> a + b);
System.out.println(sum); // 21