【发布时间】:2020-11-25 18:28:25
【问题描述】:
我正在编写一个最小优先级队列和一个最大优先级队列,如下所示:
PriorityQueue<Double> max_pq = new PriorityQueue<>(new Comparator<Double>() {
@Override
public int compare(Double o1, Double o2) {
if(o1<o2) return +1;
if(o1.equals(o2)) return 0;
return -1;
}
});
PriorityQueue<Double> min_pq = new PriorityQueue<>(new Comparator<Double>() {
@Override
public int compare(Double o1, Double o2) {
if(o1>o2) return +1;
if(o1.equals(o2)) return 0;
return -1;
}
});
输入数组的数字被一一添加到队列中。但是,当数组 [12,4,5,3,8,7] 是样本输入并且打印优先级队列的输出为:
最小值:[3.0, 4.0, 5.0, 12.0, 8.0, 7.0] 最大值:[12.0、8.0、7.0、3.0、4.0、5.0]
我定义的比较器有问题吗?提前感谢您的帮助。
【问题讨论】:
标签: java priority-queue