Mehrere Datenströme mit Gruppierung und Filterung parallel verarbeiten

Java Hard streams

Aufgabe «Mehrere Datenströme mit Gruppierung und Filterung parallel verarbeiten»

Schreiben Sie ein Programm, das aus der Standardeingabe Zeilen mit ganzen Zahlen, getrennt durch Leerzeichen, einliest. Jede Zeile stellt einen einzelnen Datenstrom dar. Verarbeiten Sie alle Ströme mit Java Streams, fassen Sie sie zu einem Strom zusammen, filtern Sie positive Zahlen, quadrieren Sie sie, gruppieren Sie sie nach dem Rest der Division durch 5 und berechnen Sie für jede Gruppe den arithmetischen Mittelwert. Geben Sie das Ergebnis in aufsteigender Reihenfolge des Rests aus. Falls für einen Rest keine Zahlen vorhanden sind, geben Sie 0 aus. Es ist garantiert, dass die Eingabedaten nicht mehr als 1000 Zahlen enthalten.

Eingabeformat

Mehrere Zeilen, jede Zeile enthält ganze Zahlen, getrennt durch Leerzeichen. Das Ende der Eingabe ist eine leere Zeile.

Ausgabeformat

5 Zeilen, jede enthält eine Gleitkommazahl (arithmetischer Mittelwert) für den entsprechenden Rest von 0 bis 4. Die Ausgabe soll mit zwei Nachkommastellen formatiert sein.

Beispiele

Beispiel 1

EINGABE
3 1 2
AUSGABE
1,2,3

Beispiel 2

EINGABE
1 2 3 4 5 6 7 8 9 10
AUSGABE
5.00 6.00 7.00 8.00 9.00

Beispiel 3

EINGABE
5 5 5
AUSGABE
5,5,5

Beispiel 4

EINGABE
-1 -3 0 2
AUSGABE
-3,-1,0,2
main.java