0
我按照here的示例创建PriorityQueue
。它工作得很好,我能够优先考虑我的对象。但我的问题是我的理解,Queue
是FIFO。所以可以说,如果我创建一个PriorityQueue
并按优先级排序。我首先将一个对象添加到优先级=低和值= c的队列中。然后我将另一个对象添加到我的PriorityQueue
,优先级设置为高,值设置为b。最后我想添加另一个对象PriorityQueue
高优先级但值= a。然后我做poll()
打印出这三个对象,我得到如何在java中实现有序但未排序的priorityqueue?
priority: High, value: a
priority: High, value: b
priority: Low, value: c
优先级正确排序,但我想具有相同优先级的两个对象遵循FIFO规则。由于b先于a加上,预期结果应该是
priority: High, value: b
priority: High, value: a
priority: Low, value: c
这是可行的吗?我有我的比较如下
private static Comparator<Request> comparator = new Comparator<Request>(){
@Override
public int compare(Request r1, Request r2) {
return (int) (r1.priority - r2.priority);
}
};
谢谢!
得到它!感谢您的快速帮助 – user1865027 2014-12-03 20:08:50