java.util.Queue是一个interface,由LinkedList实现,所以在申明一个Queue时,使用的是如下的语句:

1 Queue q=new LinkedList();

这个interface一共有6个method,如下图所示:

Java程序低手之java.util.Queue和java.util.Comparator

 

有时候我们需要优先队列,也就是PriorityQueue,运行起来如同Queue一样,不需要学习新的method,但是由于存在了优先级,就必须提供一个用于比较的方法,PriorityQueue使用Comparator这个interface来排序它的项目,如果没有指定Comparator,你会得到所谓的“自然排序”,两种代码如下:

 1 PriorityQueue<Integer> pq=new PriorityQueue<Integer>(20);//自然排序的方法,其中20是这个队列的大小
2
3 PriorityQueue<Integer> pqc=new PriorityQueue<Integer>(20,//使用自定义排序的方法实现
4 new Comparator<Integer>(){
5   @Override
6 public int compare(Integer a1, Integer a2) {
7 //根据第一个参数小于、等于或大于第二个参数分别返回负整数、零或正整数
8 return 0;
9 }
10 });

如果不指定Comparator,那么PriorityQueue将会由最低排最高。

相关文章:

  • 2021-11-13
  • 2022-12-23
  • 2021-12-09
  • 2021-12-03
  • 2021-07-22
  • 2021-05-27
猜你喜欢
  • 2022-01-22
  • 2021-06-16
  • 2021-07-22
  • 2022-12-23
  • 2022-03-06
  • 2021-09-25
  • 2022-03-05
相关资源
相似解决方案