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():同上

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-09-22
  • 2021-09-02
  • 2021-09-27
  • 2021-09-27
  • 2021-09-27
  • 2021-09-25
猜你喜欢
  • 2021-10-14
  • 2022-12-23
  • 2021-09-14
  • 2022-01-12
  • 2021-12-19
  • 2021-08-11
  • 2021-09-18
相关资源
相似解决方案