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