Java中通过Comparator实现PriorityQueue
javaobject oriented programmingprogramming更新于 2025/7/6 19:24:17
Java中通过Comparator实现PriorityQueue,代码如下 −
示例
import java.util.*;
public class Demo{
public static void main(String[] args){
Scanner my_scan = new Scanner(System.in);
PriorityQueue<Demo_class> my_pq = new PriorityQueue<Demo_class>(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<Demo_class>{
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 的类包含主要函数。这里定义了一个新的扫描仪对象和一个优先级队列。创建了 Demo 类的两个实例,并向其中添加了元素。
检查优先级队列是否为空,如果不为空,则对优先级队列调用 poll 函数并获取其名称。现在,Comparator 由新创建的类实现,compare 函数比较来自 Demo 类的两个实例的两个值。Demo 类接受名称和年龄。它定义了一个构造函数和一个名为 ‘getName’ 的函数,用于返回名称。
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/

