Verallgemeinerter Statistik-Sammler mit funktionaler Schnittstelle
Java
Hard
generics
Aufgabe «Verallgemeinerter Statistik-Sammler mit funktionaler Schnittstelle»
Implementieren Sie eine parametrisierte Klasse `StatisticsCollector<T>`, die beliebige Objekte entgegennimmt und Statistiken berechnet: Anzahl, Summe (falls T extends Number, sonst null), Minimum und Maximum (falls T extends Comparable). Implementieren Sie zusätzlich die Methode `filter(Predicate<T>)`, die einen neuen StatisticsCollector mit den gefilterten Objekten zurückgibt. Eingabedaten: Zahl n, dann n Zeilen, jede Zeile enthält entweder eine ganze Zahl oder eine Zeichenkette (ohne Leerzeichen). Nach dem Sammeln aller Elemente geben Sie die Statistik aus: count, sum (für Zahlen), min, max (falls Comparable). Wenn der Typ die Operation nicht unterstützt, geben Sie "N/A" aus. Verwenden Sie Generics und Wildcards.
Eingabeformat
In der ersten Zeile eine ganze Zahl n (1 ≤ n ≤ 1000). Dann n Zeilen, jede enthält einen Wert (ganze Zahl oder Zeichenkette).
Ausgabeformat
Für die gesammelten Objekte geben Sie 4 Zeilen aus: count, sum ("N/A" falls keine Zahlen), min ("N/A" falls nicht Comparable), max ("N/A" falls nicht Comparable).
Beispiele
Beispiel 1
EINGABE
3
100
hello
200
AUSGABE
3
300
100
200
main.java