Colector de estadísticas genérico con interfaz funcional

Java Hard generics

Tarea «Colector de estadísticas genérico con interfaz funcional»

Implemente una clase parametrizada `StatisticsCollector<T>`, que acepta objetos arbitrarios y calcula estadísticas: cantidad, suma (si T extends Number, de lo contrario null), mínimo y máximo (si T extends Comparable). Adicionalmente, implemente el método `filter(Predicate<T>)`, que devuelve un nuevo StatisticsCollector con los objetos que pasaron el filtro. Datos de entrada: un número n, luego n líneas, cada línea contiene un número entero o una cadena (sin espacios). Después de recolectar todos los elementos, muestre las estadísticas: count, sum (para números), min, max (si Comparable). Si el tipo no soporta la operación, muestre "N/A". Use genéricos y comodines.

Formato de entrada

En la primera línea, un número entero n (1 ≤ n ≤ 1000). Luego n líneas, cada una contiene un valor (número entero o cadena).

Formato de salida

Para los objetos recolectados, muestre 4 líneas: count, sum ("N/A" si no son números), min ("N/A" si no es Comparable), max ("N/A" si no es Comparable).

Ejemplos

Ejemplo 1

ENTRADA
3 100 hello 200
SALIDA
3 300 100 200
main.java