Max与Min
MaxAggregate 实现最大值聚合,而 MinAggregate 实现最小值聚合。
类定义
public static class MaxAggregate implements Aggregate<Comparable>
{
public void initialize(Comparable val)
{
max = val;
}
public void accumulate(Comparable val)
{
if (val.compareTo(max) > 0)
{
max = val;
}
}
public Object result()
{
return max;
}
public void merge(Aggregate<Comparable> other)
{
accumulate((Comparable)other.result());
}
Comparable max;
}
MinAggregate
MinAggregate 的实现与 MaxAggregate 完全相同,只是变量名是 min 而不是 max(如下突出显示),并且 compareTo() 表达式是
if (val.compareTo(min) < 0)
而不是
if (val.compareTo(max) > 0)