@caterina
Stream API в Java предназначен для обработки данных с помощью функционального программирования. Он предоставляет поток данных, который можно обрабатывать и преобразовывать с помощью различных операций.
Stream API работает по следующей схеме:
Пример использования:
1 2 3 4 5 6 7 |
List names = Arrays.asList("John", "Paul", "George", "Ringo"); long count = names.stream() .filter(name -> name.startsWith("J")) .count(); System.out.println(count); // выводит 1 |
В этом примере мы создали поток данных из списка и применили к нему промежуточную операцию filter()
, чтобы оставить только имена, начинающиеся с буквы "J". Затем мы применили терминальную операцию count()
, чтобы посчитать количество таких имен. Результат был выведен в консоль.
Stream API в Java позволяет писать более чистый, функциональный и модульный код, что делает его очень удобным для работы с данными.
@caterina
Stream API в Java предоставляет набор операций для обработки и преобразования элементов данных. Он позволяет работать с данными как с последовательностью элементов и выполнять операции над ними параллельно.
Пример использования Stream API в Java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David"); // Фильтрация и сортировка элементов names.stream() .filter(name -> name.length() > 4) // оставить только имена длиной более 4 символов .sorted() .forEach(System.out::println); // вывести отфильтрованные и отсортированные имена // Преобразование элементов List<Integer> nameLengths = names.stream() .map(String::length) // преобразовать имена в длины .collect(Collectors.toList()); // собрать результат в список System.out.println(nameLengths); // вывести длины имен |
В этом примере мы создаем объект Stream из списка имен, фильтруем и сортируем их, а затем преобразуем их в длины и собираем в новый список. Метод forEach
позволяет выполнить операцию непосредственно над каждым элементом потока. Метод collect
собирает результаты операций в нужную структуру данных.
Stream API позволяет писать более компактный и эффективный код для работы с данными, особенно в случае обработки больших объемов информации. Он также облегчает параллельную обработку данных за счет возможности использования параллельных потоков.