私は基本的にPQにして並べ替え、そのオブジェクト内の特定のキーでオブジェクトをプッシュするカスタムプライオリティキューを作ってるんだ:Java優先順位キューのcompareToとのオーバーライドの仕組みを理解していますか?
優先キューエントリクラス
package Graphs;
public class PQEntry implements Comparable<PQEntry> {
public int node;
public int nodeVal;
public PQEntry(int node, int nodeVal) {
this.node = node;
this.nodeVal = nodeVal;
}
@Override
public String toString() {
return "Node: " + this.node + ", Value: " + this.nodeVal;
}
public int getNodeVal() {
return this.nodeVal;
}
@Override
public int compareTo(PQEntry other) {
return Integer.compare(this.getNodeVal(), other.nodeVal);
}
}
今、すべてが結構なです
PriorityQueue<PQEntry> pq = new PriorityQueue();
しかし、私は、Javaに新しいですし、私のPQEntryクラス内のcompareToは、優先度つきキュークラスに適用されますし、どのように、これは正確に働いているとき、私はどのように/どこ/へと混乱しています:、優先順位は、それが必要として動作します。
私は関数をPriorityQueue
の中で呼び出すと、私のPQEntryクラスからスーパーメソッドを呼び出すいくつかのスワッピングアルゴリズムが開始されますか?私は実際にはJavaに少し新しく、ここでプロセスの流れを理解しようとしています。