Traitement multithread des flux de données avec regroupement et filtrage
Java
Hard
streams
Tâche «Traitement multithread des flux de données avec regroupement et filtrage»
Écrivez un programme qui lit depuis l’entrée standard des lignes contenant des nombres entiers séparés par des espaces. Chaque ligne représente un flux de données distinct. Il faut traiter tous les flux en utilisant Java Streams, les fusionner en un seul flux, filtrer les nombres positifs, les élever au carré, les regrouper par reste de la division par 5 et pour chaque groupe calculer la moyenne arithmétique. Afficher le résultat dans l’ordre croissant du reste. Si pour un reste donné il n’y a pas de nombres, afficher 0. Il est garanti que les données d’entrée contiennent au plus 1000 nombres.
Format d\ entrée
Plusieurs lignes, chaque ligne contient des nombres entiers séparés par des espaces. La fin de l’entrée est une ligne vide.
Format de sortie
5 lignes, chacune contient un nombre à virgule flottante (moyenne arithmétique) pour le reste correspondant de 0 à 4. La sortie doit être formatée avec deux chiffres après la virgule.
Exemples
Exemple 1
ENTRÉE
3 1 2
SORTIE
1,2,3
Exemple 2
ENTRÉE
1 2 3 4 5 6 7 8 9 10
SORTIE
5.00
6.00
7.00
8.00
9.00
Exemple 3
ENTRÉE
5 5 5
SORTIE
5,5,5
Exemple 4
ENTRÉE
-1 -3 0 2
SORTIE
-3,-1,0,2
main.java