Coletor de estatísticas generalizado com interface funcional
Java
Hard
generics
Tarefa «Coletor de estatísticas generalizado com interface funcional»
Implemente uma classe parametrizada `StatisticsCollector<T>`, que aceita objetos arbitrários e calcula estatísticas: quantidade, soma (se T extends Number, caso contrário null), mínimo e máximo (se T extends Comparable). Implemente adicionalmente o método `filter(Predicate<T>)`, que retorna um novo StatisticsCollector com os objetos que passaram pelo filtro. Dados de entrada: um número n, em seguida n linhas, cada linha contém um número inteiro ou uma string (sem espaços). Após coletar todos os elementos, exiba as estatísticas: count, sum (para números), min, max (se Comparable). Se o tipo não suportar a operação, exiba "N/A". Use generics e wildcards.
Formato de Entrada
Na primeira linha, um número inteiro n (1 ≤ n ≤ 1000). Em seguida, n linhas, cada uma contendo um valor (número inteiro ou string).
Formato de Saída
Para os objetos coletados, exiba 4 linhas: count, sum ("N/A" se não forem números), min ("N/A" se não for Comparable), max ("N/A" se não for Comparable).
Exemplos
Exemplo 1
ENTRADA
3
100
hello
200
SAÍDA
3
300
100
200
main.java