Java--PriorityQueue

PriorityQueue是基于优先级堆的极大优先级队列

 

在PriorityQueue提供的构造方法中,可以使用自定义的排序方法:

1 PriorityQueue<ListNode> pq = new PriorityQueue<ListNode>(lists.size(),new Comparator<ListNode>(){
2  
3             @Override
4             public int compare(ListNode o1, ListNode o2) {
5                 return o1.val-o2.val;
6             }
7  
8         });

也可以使用元素自带的Comparable排序

因此,PriorityQueue要求在默认排序的时候,需要元素对象拥有Comparable功能。

但是,若对象在没有Comparable功能的时候,PriorityQueue实现了自己的Comparator,那么理所当然可以正确运行:

1 PriorityQueue<webs> pq = new PriorityQueue<webs>(3,new Comparator<webs>(){
2  
3             @Override
4             public int compare(webs o1, webs o2) {
5                 return o1.n - o2.n;
6             }
7         });

 

PriorityQueue提供的方法

peek():返回队头的元素,但不删除。

poll():返回并删除队首元素。

add():将元素加入队列

offer():同上

转载于:https://www.cnblogs.com/wylwyl/p/10478168.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值