import java.util.*;
class Huffman {
int a;
public Huffman(int i)
{
a = i;
}
}
class PriorityQueueDemo implements Comparator<Huffman>
{
public int compare(Huffman ab, Huffman cd)
{
if(ab.a>cd.a)
{
return 1;
}
return 0;
}
public static void main(String[] args)
{
PriorityQueue<Huffman> HuffQueue = new PriorityQueue<Huffman>();
Huffman ab = new Huffman(10);
HuffQueue.offer(ab);
ab = new Huffman(50);
HuffQueue.offer(ab);
ab = new Huffman(20);
HuffQueue.offer(ab);
ab = new Huffman(60);
HuffQueue.offer(ab);
while(HuffQueue.size() > 0)
System.out.println(HuffQueue.remove());
}
}
有什麼不對下面的代碼!它生成以下例外:以下Java代碼中的錯誤是什麼?
Exception in thread "main" java.lang.ClassCastException: Huffman cannot be cast to java.lang.Comparable
at java.util.PriorityQueue.siftUpComparable(Unknown Source)
at java.util.PriorityQueue.siftUp(Unknown Source)
at java.util.PriorityQueue.offer(Unknown Source)
at PriorityQueueDemo.main(Huffman.java:34)
非常感謝。它現在正在工作,但它的打印順序並不像優先級隊列那樣。它的輸出與插入的順序相同。它有什麼問題? – Sarfraz
以檢查它的'比較()'方法 –
歡迎您:) –