通用统计收集器,带有函数式接口

Java Hard generics

任务 «通用统计收集器,带有函数式接口»

实现一个参数化类 `StatisticsCollector<T>`,它接收任意对象并计算统计信息:数量、总和(如果 T 继承自 Number,否则为 null)、最小值与最大值(如果 T 继承自 Comparable)。另外,实现一个方法 `filter(Predicate<T>)`,返回一个新的 `StatisticsCollector`,其中包含通过过滤器的对象。输入数据:一个整数 n,随后是 n 行,每行包含一个整数或一个字符串(不含空格)。收集所有元素后,输出统计信息:count、sum(针对数字)、min、max(如果实现了 Comparable)。如果类型不支持该操作,则输出 "N/A"。使用泛型和通配符。

输入格式

在第一行中,输入一个整数 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