Я использую приоритетную очередь в одном из моих java-кодов (класс пары). Я столкнулся с одной небольшой проблемой, которая использует функцию удаления (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
}
}