Многопоточная обработка потоков данных с группировкой и фильтрацией
Java
Сложный
streams
Задача «Многопоточная обработка потоков данных с группировкой и фильтрацией»
Напишите программу, которая читает из стандартного ввода строки, содержащие целые числа, разделённые пробелами. Каждая строка представляет собой отдельный поток данных. Необходимо обработать все потоки с использованием Java Streams, объединить их в один поток, отфильтровать положительные числа, возвести их в квадрат, сгруппировать по остатку от деления на 5 и для каждой группы вычислить среднее арифметическое. Вывести результат в порядке возрастания остатка. Если для какого-то остатка нет чисел, вывести 0. Гарантируется, что входные данные содержат не более 1000 чисел.
Формат ввода
Несколько строк, каждая строка содержит целые числа, разделённые пробелами. Конец ввода — пустая строка.
Формат вывода
5 строк, каждая содержит одно число с плавающей точкой (среднее арифметическое) для соответствующего остатка от 0 до 4. Вывод должен быть отформатирован с двумя знаками после запятой.
Примеры
Пример 1
ВВОД
3 1 2
ВЫВОД
1,2,3
Пример 2
ВВОД
1 2 3 4 5 6 7 8 9 10
ВЫВОД
5.00
6.00
7.00
8.00
9.00
Пример 3
ВВОД
5 5 5
ВЫВОД
5,5,5
Пример 4
ВВОД
-1 -3 0 2
ВЫВОД
-3,-1,0,2
main.java