这是java类库中的一个,里面有很多方法,看帮助文档就知道,一下举出几个例子来更好的了解PriorityQueue的用法
例子一:
- importjava.util.*;
- @SuppressWarnings("rawtypes")
- classMouseimplementsComparable{
- publicinti;
- Mouse(inti){
- this.i=i;
- }
- publicStringtoString(){
- return"Mouse"+i;
- }
- publicintcompareTo(Objecto){
- assert((o!=null)&&(oinstanceofMouse));
- returnnewInteger(i).compareTo(((Mouse)o).i);
- }
- }
- publicclassTestQueue{
- publicstaticvoidmain(String[]args){
- Queue<Mouse>queue1=newPriorityQueue<Mouse>();
- PriorityQueue<Mouse>queue2=newPriorityQueue<Mouse>(1,newComparator<Mouse>()//大数在队列头
- {
- publicintcompare(Mouseo1,Mouseo2)
- {
- returno2.i-o1.i;
- }
- });
- for(inti=5;i>-1;i--){
- queue1.add(newMouse(i));
- queue2.add(newMouse(i));
- }
- for(inti=5;i>-1;i--)
- System.out.println(queue1.poll());
- for(inti=5;i>-1;i--)
- System.out.println(queue2.poll());
- }
- }
例子二:
- importjava.util.Comparator;
- importjava.util.PriorityQueue;
- enumProductQuality{
- High,Medium,Low
- }
- classProductimplementsComparable<Product>{
- Stringname;
- ProductQualitypriority;
- Product(Stringstr,ProductQualitypri){
- name=str;
- priority=pri;
- }
- publicintcompareTo(Productmsg2){
- returnpriority.compareTo(msg2.priority);
- }
- }
- classMessageComparatorimplementsComparator<Product>{
- publicintcompare(Productmsg1,Productmsg2){
- returnmsg2.priority.compareTo(msg1.priority);
- }
- }
- publicclassMain{
- publicstaticvoidmain(Stringargs[]){
- PriorityQueue<Product>pq=newPriorityQueue<Product>(3);
- pq.add(newProduct("A",ProductQuality.Low));
- pq.add(newProduct("B",ProductQuality.High));
- pq.add(newProduct("C",ProductQuality.Medium));
- Productm;
- while((m=pq.poll())!=null)
- System.out.println(m.name+"Priority:"+m.priority);
- PriorityQueue<Product>pqRev=newPriorityQueue<Product>(3,newMessageComparator());
- pqRev.add(newProduct("D",ProductQuality.Low));
- pqRev.add(newProduct("E",ProductQuality.High));
- pqRev.add(newProduct("F",ProductQuality.Medium));
- while((m=pqRev.poll())!=null)
- System.out.println(m.name+"Priority:"+m.priority);
- }
- }
主要是要重写compareTo()这个方法,使之达到自己想要的排序方式。