Java Collection How to - Create Priority Queue to ignore duplicates








Question

We would like to know how to create Priority Queue to ignore duplicates.

Answer

import java.util.PriorityQueue;
/*ww w . j ava  2  s. c o  m*/
public class Main {
  public static void main(String args[]) {
    PriorityQueue<Integer> p = new NoDuplicates<Integer>();
    p.add(1);
    p.add(2);
    p.add(1);
    for (int i = 0; i <= 2; i++) {
      System.out.println(p.poll());
    }

  }
}

class NoDuplicates<E> extends PriorityQueue<E> {
  public boolean add(E e) {
    boolean isAdded = false;
    if (!super.contains(e)) {
      isAdded = super.add(e);
    }
    return isAdded;
  }

}

The code above generates the following result.