Tôi vừa học về hàng đợi ưu tiên và nghĩ rằng tôi sẽ thử cách nó hoạt động với giao diện có thể so sánh.Hàng đợi ưu tiên Java và giao diện có thể so sánh
Đoạn Mã:
import java.util.PriorityQueue;
class kinga implements Comparable<Double> {
double time=909.909;
double d;
public kinga(double a) {
this.d=a;
}
public int compareTo(Double d) {
return Double.compare(d, time);
}
public static void main(String arg[]) {
PriorityQueue<kinga> r=new PriorityQueue<kinga>();
r.add(new kinga(4545.45));
r.add(new kinga(45.4));
r.add(new kinga(1235.45));
System.out.println(r.poll()+" "+r.poll()+" "+r.poll());
}
}
Nó biên dịch nhưng mang lại cho tôi ngoại lệ trong chủ đề "chính"java.lang.ClassCastException: kinga cannot be cast to java.lang.Double
.
Có gì sai ở đây. Ai đó có thể cho tôi biết hàng đợi có thể so sánh và ưu tiên hoạt động như thế nào?
xem câu trả lời của tôi cho mã đã chỉnh sửa và kết quả đầu ra cho giống nhau. –