ตัวอย่างโค้ด
import java.util.*;
public class Demo {
public static void main(String[] args) {
Scanner my_scan = new Scanner(System.in);
PriorityQueue my_pq = new PriorityQueue(3, new demoComparator());
Demo_class obj_1 = new Demo_class("Joe", 25);
my_pq.add(obj_1);
Demo_class obj_2 = new Demo_class("Goldberg", 27);
my_pq.add(obj_2);
while (!my_pq.isEmpty()) {
System.out.println(my_pq.poll().getName());
}
}
}
class demoComparator implements Comparator {
public int compare(Demo_class s1, Demo_class s2) {
if (s1.age < s2.age)
return 1;
else if (s1.age > s2.age)
return -1;
return 0;
}
}
class Demo_class {
public String name;
public int age;
public Demo_class(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
}
ผลลัพธ์
Goldberg Joe
คลาส Demo มี main สร้าง Scanner และ PriorityQueue ระบุความจุ 3 และ Comparator คือ demoComparator สร้างอ็อบเจ็กต์ Demo_class 2 ตัว add เข้า queue วนลูป poll() จน queue ว่าง พิมพ์ชื่อ demoComparator implements Comparator เปรียบเทียบอายุ (age) เรียงจากมากไปน้อย (อายุมากกว่าออกก่อน) Demo_class เก็บ name และ age มี constructor และ getName()