مُجمّع إحصائيات عام مع واجهة وظيفية
Java
Hard
generics
مهمة «مُجمّع إحصائيات عام مع واجهة وظيفية»
قم بتنفيذ الفئة الم parametrized `StatisticsCollector<T>`، التي تستقبل كائنات عشوائية وتحسب الإحصائيات: العدد، المجموع (إذا كان T يمتد Number، وإلا null)، الحد الأدنى والحد الأقصى (إذا كان T يمتد Comparable). بالإضافة إلى ذلك، قم بتنفيذ طريقة `filter(Predicate<T>)` التي تعيد `StatisticsCollector` جديدًا يحتوي على الكائنات التي اجتازت الفلتر. بيانات الإدخال: عدد n، ثم n سطر، كل سطر يحتوي إما على عدد صحيح أو سلسلة نصية (بدون مسافات). بعد جمع جميع العناصر، قم بطباعة الإحصائيات: count، sum (للأعداد)، min، max (إذا كانت Comparable). إذا كان النوع لا يدعم العملية، اطبع "N/A". استخدم generics و wildcards.
تنسيق الإدخال
في السطر الأول عدد صحيح n (1 ≤ n ≤ 1000). ثم n سطر، كل سطر يحتوي على قيمة واحدة (عدد صحيح أو سلسلة نصية).
تنسيق الإخراج
بالنسبة للكائنات التي تم جمعها، قم بإخراج 4 أسطر: count، sum ("N/A" إذا لم تكن أرقامًا)، min ("N/A" إذا لم تكن قابلة للمقارنة)، max ("N/A" إذا لم تكن قابلة للمقارنة).
أمثلة
مثال 1
الإدخال
3
100
hello
200
الإخراج
3
300
100
200
main.java