16
我有一個優先級隊列中,我節點對象添加到,其中節點應該由一個值,它們包含進行排序。出於某種原因,優先級隊列不會對添加的節點進行排序。如果任何人都可以看到有問題或有任何指導,我很感激。下面是一個簡單的例子:PriorityQueue中未排序上添加
PriorityQueue<Node> PQ = new PriorityQueue<Node>();
//for each entry create a node and add it to the PriorityQueue
for(Entry<Character,Integer> entry : entries){
PQ.add(new Node(entry.getKey(),entry.getValue(), true));
}
這裏是節點的compareTo
方法:
@Override
public int compareTo(Node n) {
if(n.frequency.intValue() > this.frequency.intValue()) return -1;
else if(n.frequency.intValue() == this.frequency.intValue()) return 0;
else return 1;
}
權,但我希望它是在去除使用remove()方法 – 2011-04-17 17:30:38
@Trevor每個對象的分類:您還沒有表現出迭代碼。請更新您的問題以顯示一個節目,但*完整的例子,我們可以編譯並運行。 – 2011-04-17 17:31:49
沒關係,我現在意識到在remove()上對象被排序。感謝所有 – 2011-04-17 17:35:17