【发布时间】:2017-05-16 13:22:37
【问题描述】:
根据 PriorityQueue 的定义,它说:
优先级队列的元素按照它们的顺序排列 自然排序,或由队列构造时提供的比较器 时间,取决于使用的构造函数。
但是当我尝试使用队列中的 3 个元素时,这些元素似乎没有正确排序。
Queue<Integer> q2 = new PriorityQueue<Integer>();
q2.add(9);
q2.add(7);
q2.add(8);
Iterator<Integer> i = q2.iterator();
while(i.hasNext()){
Integer e = i.next();
System.out.println(e);
}
输出:
7
9
8
[编辑] 如果元素个数为4,则排序似乎是正确的
q2.add(9);
q2.add(7);
q2.add(8);
q2.add(5);
Iterator<Integer> i = q2.iterator();
while(i.hasNext()){
Integer e = i.next();
System.out.println(e);
}
输出:
5
7
8
9
【问题讨论】:
标签: java priority-queue