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