Как исправить «Функция удаления приоритета очереди не работает» - PullRequest
0 голосов
/ 23 марта 2019

Я использую приоритетную очередь в одном из моих 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
  }
}
...