私はプライオリティキューについて学んでいましたが、それが同等のインタフェースでどのように動作するかを試してみると思いました。Javaプライオリティキューと同等のインタフェース
コードスニペット:
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());
}
}
それはコンパイルが、私にスレッドjava.lang.ClassCastException: kinga cannot be cast to java.lang.Double
"メイン" の例外を提供します。
ここで何が間違っていますか。同等のキューと優先キューがどのように機能するか教えていただけますか?あなたのcompareTo
方法はこれに変更する必要があります意味
class kinga implements Comparable<kinga>
:
public int compareTo(kinga o) {
return Double.compare(o.d, d);
}
編集コードと出力が同じです。 –