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

1 Queue q=new LinkedList();

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

 

有时候我们需要优先队列,也就是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将会由最低排最高。

posted on 2011-10-24 20:25  Yakov  阅读(378)  评论(0编辑  收藏  举报