Can somebody tell me how comparable and priority queues work?
First get the difference between the Comparable and Comparator interfaces.
Now for your question you can do something like below
First create a Comparator for Kinga
class comparableKinga implements Comparator<kinga> { @Override public int compare(kinga o1, kinga o2) { return Double.compare(o1.getD(),o2.getD()); } }
Then create a priority queue using this comparator in the constructor
class kinga { double d; public kinga(double a) { this.d = a; } public double getD() { return this.d; } @Override public String toString() { return "kinga{" + "d=" + d + '}'; } public static void main(String arg[]) { PriorityQueue<kinga> r = new PriorityQueue<kinga>(11,new comparableKinga()); r.add(new kinga(4545.45)); r.add(new kinga(45.4)); r.add(new kinga(1235.45)); System.out.println(r.poll() + " " + r.poll() + " " + r.poll()); } }
Exit as expected
kinga{d=45.4} kinga{d=1235.45} kinga{d=4545.45}
Aniket thakur
source share