min優先度のキューを使用するアルゴリズムを作成しようとしていますので、私はgoogleで検索し、PriorityQueueを見つけました。しかし、それを使用するには、どのように優先順位を付けたいのか、それを行う方法はコンパレータを使っていることを伝える必要があります(私の "Node1"の特定のデータフィールドを比較したい、オブジェクト)。より多くのグーグルが、Comparatorを実装する新しいコンパレータを作成するという考えを示しましたが、compareメソッドをオーバーライドしました。私は何をしようとしています、この(と同様にそれの他のバリエーション)である:Javaコンパイラの実装
import java.util.Comparator;
public class distComparator implements Comparator {
@Override
public int compare(Node1 x, Node1 y){
if(x.dist<y.dist){
return -1;
}
if(x.dist>y.dist){
return 1;
}
return 0;
}
}
私は上に苦しむことがあると言うコンパレータクラスを(持っていないということであるそのうちの一つ、いくつかの理由で、コンパイラの抗議、抽象的な)
error: distComparator is not abstract and does not override abstract method compare(Object,Object) in Comparator
この問題を処理する「compare(object x、object y)」と言っています。この時点でコンパイラはxまたはyの "dist"変数を見つけることができないと訴えていますが、ObjectクラスではなくNode1クラスの一部であるため意味があります。
これはどのように動作するはずですか?それは明らかにタイプObject
でなければなりませんが、正しい変数にどのように向けるのですか?
ます。また 'リターンx.distを書くことができます - y.dist' – Polygnome
@Polygnomeを:これを関与範囲に応じてよく、またはかもしれません整数では機能しませんが、浮動小数点値の完全な非スターターです。 – NPE
ありがとう!解決済み! –