java 优先级队列
2014-07-18 17:59
288 查看
优先级队列,队列头部存放的是优先级最高的元素。 package prioritydemo1; import java.util.Comparator; import java.util.PriorityQueue; import java.util.Queue; public class prioritylist { private String name; private int num; //定义属性(名字和优先级) public prioritylist(String name, int num) { this.name = name; this.num = num; } //构造函数 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getNum() { return num; } public void setNum(int num) { this.num = num; } @Override public String toString() { return getName() + "-" + getNum(); } public static void main(String args[]) { Comparator<prioritylist> demo1 = new Comparator<prioritylist>() { public int compare(prioritylist o1, prioritylist o2) { // TODO Auto-generated method stub int num1 = o1.getNum(); int num2 = o2.getNum(); if(num1 > num2){ return 1; } else if(num1 < num2) { return -1; } else return 0; } }; //定义比较容器,compare函数中定义的是优先级顺序,num1>num2时返回正数,所以0的优先级比1大。小的数优先级高。 Queue<prioritylist> demo2 = new PriorityQueue<prioritylist>(11,demo1); //定义优先级队列(定义容量和比较容器) prioritylist t1 = new prioritylist("t1",2); prioritylist t3 = new prioritylist("t3",3); prioritylist t2 = new prioritylist("t2",6); prioritylist t4 = new prioritylist("t4",0); demo2.add(t1); demo2.add(t3); demo2.add(t2); demo2.add(t4); System.out.println(demo2.poll().toString()); //输出队列头部元素。 } }
相关文章推荐
- java 编写的最大优先级队列
- 算法导论Java实现-优先级队列(6.5章节)
- Java 模拟队列(一般队列、双端队列、优先级队列)
- Java优先级队列PriorityQueue
- java中PriorityQueue优先级队列使用方法
- java中关于优先级队列的实现
- 【转】java中PriorityQueue优先级队列使用方法
- java之中PriorityQueue实现原理(具有优先级的队列)
- java 队列、优先级队列、双向队列示例演示代码
- Java优先级队列
- java中PriorityQueue优先级队列使用方法
- java中PriorityQueue优先级队列使用方法
- java中关于优先级队列的实现
- java队列和优先级队列
- Java优先级队列实现
- 优先级队列的Java ,C++ STL,堆实现
- 循环队列与优先级队列的Java实现
- java实现 数据结构:链表、 栈、 队列、优先级队列、哈希表
- 数据结构Java实现——②队列-->队列的“奇葩”二 优先级队列
- java Comparator接口和PriorityQueue优先级队列的使用