Collecteur de statistiques généralisé avec interface fonctionnelle
Java
Hard
generics
Tâche «Collecteur de statistiques généralisé avec interface fonctionnelle»
Implémentez une classe paramétrée `StatisticsCollector<T>` qui accepte des objets arbitraires et calcule les statistiques : le comptage, la somme (si T extends Number, sinon null), le minimum et le maximum (si T extends Comparable). Implémentez également une méthode `filter(Predicate<T>)` qui retourne un nouveau StatisticsCollector contenant les objets ayant passé le filtre. Entrée : un nombre n, puis n lignes, chaque ligne contient soit un nombre entier, soit une chaîne de caractères (sans espaces). Après avoir collecté tous les éléments, affichez les statistiques : count, sum (pour les nombres), min, max (si Comparable). Si le type ne prend pas en charge l'opération, affichez "N/A". Utilisez les generics et les wildcards.
Format d\ entrée
La première ligne contient un entier n (1 ≤ n ≤ 1000). Ensuite, n lignes, chacune contenant une valeur (nombre entier ou chaîne de caractères).
Format de sortie
Pour les objets collectés, affichez 4 lignes : count, sum ("N/A" si ce ne sont pas des nombres), min ("N/A" si pas Comparable), max ("N/A" si pas Comparable).
Exemples
Exemple 1
ENTRÉE
3
100
hello
200
SORTIE
3
300
100
200
main.java