import java.util.*; public class DFStu { public static void main(String args[]){ //优先字符,从大到小 //重写比较器 Queue<Character> que = new PriorityQueue( new Comparator<Character>() { public int compare(Character e1,Character e2) { return e2 - e1;///重载优先级使其变为大根堆 } }); que.add('t'); que.add('c'); que.add('g'); que.add('f'); que.add('b'); int flag1=1; while(que.size()>0){ if(flag1==1){ System.out.print(que.poll()); flag1=0; }else { System.out.print(" " + que.poll()); } } System.out.println(); //优先数字,从小到大,也是默认的方式 Queue<Integer> que2 = new PriorityQueue<Integer>(); que2.add(11); que2.add(2); que2.add(14); que2.add(5); que2.add(7); int flag2=1; while(que2.size()>0){ if(flag2==1){ System.out.print(que2.poll()); flag2=0; }else { System.out.print(" " + que2.poll()); } } System.out.println(); } }
java优先队列的使用(包括重写比较函数)
最新推荐文章于 2024-05-01 11:40:32 发布