4
import java.util.*;
public class test4 {
public static void main(String[] args){
PriorityQueue[] P = new PriorityQueue[10];
P[1] = new PriorityQueue<ClassEntry>();
P[1].add(new ClassEntry(1.2,1));
P[1].add(new ClassEntry(1.5,2));
P[1].add(new ClassEntry(1.2,3));
P[1].add(new ClassEntry(10,4));
P[1].remove(new ClassEntry(10,4));//I can't delete this object???
System.out.println(P[1].size());
ClassEntry ce = (ClassEntry) P[1].peek();
System.out.println(P[1].size());
System.out.println(ce.sim+"\t"+ce.index);
}
}
なぜ(10,4)を削除できないのですか?誰かが実装する方法を教えることができます...ありがとう!優先度キューの特定の要素を削除するにはどうすればよいですか?
+1明確化:キューは、2つのオブジェクトが「等しい」かどうかを判断する方法を知っている必要があります削除したい関心のある「等しい」条件を実装するコードを提供しない場合は、メモリ内のオブジェクトアドレスを比較するjava.lang.Objectからデフォルトのequals()を取得します。 –
コメントありがとうございます。私はそれに応じて自分の投稿を更新しました。 – rodion
ありがとうございます!しかし、私はどのように私はequals機能の仕事をさせることができますか分からないのですか?私はtest4クラスでequals()を呼び出す必要がありますか? – LoveTW