MaxArrayDeque
MaxArrayDeque
MaxArrayDeque继承了ArrayDqeue的所有方法
我们需要编写它的两个附加方法和一个新的构造函数: 没有任何的运行要求, 只要求结果正确.
1. public MaxArrayDeque(Comparator c)
使用c创建了一个MaxArrayDeqeue.
本质上就是增加一个比较器可以和其他对象比较.
private final Comparator<T> comparator;
public MaxArrayDeque(Comparator<T> c) {
comparator = c;
}
2. public T max(Comparator c)
返回控制的双端队列中的最大元素.
- 如果为空, 返回null.
- 如果不为空, 依次比较返回最大的值.
public T max(Comparator<T> c) {
if (isEmpty()) {
return null;
}
T max = get(0);
for(T e: this) {
if (c.compare(e, max) > 0) {
max = e;
}
}
return max;
}
3. public T max()
返回c控制的双端队列中的最大元素, 如果为空, 返回null 直接作为max(Comparator c)抽象障碍的上层即可.
public T max() {
return max(comparator);
}