我刚刚学习了优先级队列,并认为我会尝试使用可比较的界面来表现它的行为。
代码片段:
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());
}
}
它编译但在线程“main” 中给了我异常java.lang.ClassCastException: kinga cannot be cast to java.lang.Double
。
这里有什么问题。有人可以告诉我可比队列和优先级队列是如何工作的吗?