我在我的Java代码之一(对类)中使用Priority Queue。我遇到了一个使用删除功能(PQ)的小问题,该问题未给出结果。过了一会儿,我发现了自己的错误,但是我不知道这个问题背后的原因。谁能解释这个问题的逻辑原因(为什么我的代码的最后一行给我错误)?
我是这个平台的新手,在发布此问题之前,我在互联网上进行了大量搜索,但没有找到合适的理由来证明上述问题。
import java.util.Comparator;
import java.util.PriorityQueue;
public class PQ_IMP {
static class Pair{
int a ;
int b;
int c;
Pair(int x,int y,int z){
a=x;b=y;c=z;
}
}
public static void main(String[] args) {
PriorityQueue<Pair> name =new PriorityQueue<Pair>(new Comparator<Pair>() {
@Override
public int compare(Pair o1, Pair o2) {
return Integer.compare(o1.a,o2.a);
}
});
Pair n=new Pair(1,2,3);
name.add(n);
System.out.println(name.remove(n)); // Print true
name.add(n);
n=new Pair(1,2,3);
System.out.println(name.remove(n)); // Print False
}
}