如何修复“优先级队列删除功能不起作用”

时间:2019-03-23 13:11:08

标签: java object queue priority-queue

我在我的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
  }
}

0 个答案:

没有答案