java 实现comparator_Java中通过比较器Comparator实现PriorityQueue

为了通过Java中的Comparator实现PriorityQueue,代码如下-

示例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 

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函数。 这里,定义了新的扫描仪对象和优先级队列。 将创建Demo类的两个实例,并向其中添加元素。

检查优先级队列是否为空,如果不为空,则调用优先级队列上的轮询函数并获取其名称。

现在,比较器由一个新创建的类实现,并且Compare函数比较来自Demo类的两个实例的两个值。 Demo类接受名称和年龄。

它定义了一个构造函数和一个返回名称的名为“getName”的函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值