java中PriorityQueue优先级队列使用方法
来源:互联网 发布:mac手机删除导入照片 编辑:程序博客网 时间:2024/05/16 11:35
优先级队列是不同于先进先出队列的另一种队列。每次从队列中取出的是具有最高优先权的元素。
PriorityQueue是从JDK1.5开始提供的新的数据结构接口。
如果不提供Comparator的话,优先队列中元素默认按自然顺序排列,也就是数字默认是小的在队列头,字符串则按字典序排列。
由于网上的资料大多将优先级队列各个方法属性,很少有实例讲解的,为方便大家以后使用,我就写了个demo~
如果想实现按照自己的意愿进行优先级排列的队列的话,需要实现Comparator接口。下面的方法,实现了根据某个变量,来进行优先级队列的建立。
- import java.util.Comparator;
- import java.util.PriorityQueue;
- import java.util.Queue;
- public class test {
- private String name;
- private int population;
- public test(String name, int population)
- {
- this.name = name;
- this.population = population;
- }
- public String getName()
- {
- return this.name;
- }
- public int getPopulation()
- {
- return this.population;
- }
- public String toString()
- {
- return getName() + " - " + getPopulation();
- }
- public static void main(String args[])
- {
- Comparator<test> OrderIsdn = new Comparator<test>(){
- public int compare(test o1, test o2) {
- // TODO Auto-generated method stub
- int numbera = o1.getPopulation();
- int numberb = o2.getPopulation();
- if(numberb > numbera)
- {
- return 1;
- }
- else if(numberb<numbera)
- {
- return -1;
- }
- else
- {
- return 0;
- }
- }
- };
- Queue<test> priorityQueue = new PriorityQueue<test>(11,OrderIsdn);
- test t1 = new test("t1",1);
- test t3 = new test("t3",3);
- test t2 = new test("t2",2);
- test t4 = new test("t4",0);
- priorityQueue.add(t1);
- priorityQueue.add(t3);
- priorityQueue.add(t2);
- priorityQueue.add(t4);
- System.out.println(priorityQueue.poll().toString());
- }
- }
0 0
- java中PriorityQueue优先级队列使用方法
- java中PriorityQueue优先级队列使用方法
- java中PriorityQueue优先级队列使用方法
- java中PriorityQueue优先级队列使用方法
- java中PriorityQueue优先级队列使用方法
- java中PriorityQueue优先级队列使用方法
- java中PriorityQueue优先级队列使用方法
- java中PriorityQueue优先级队列使用方法
- Java优先级队列PriorityQueue
- PriorityQueue 优先级队列【java】
- java中PriorityQueue优先级队列的使用
- JAVA中的优先级队列PriorityQueue
- java之_队列(PriorityQueue 优先级队列)
- JDK中优先级队列PriorityQueue实现分析
- 优先级队列(java.util.PriorityQueue<E>)
- PriorityQueue--优先级队列
- 优先级队列:PriorityQueue
- PriorityQueue 优先级队列
- Shiro身份认证的流程
- 数据平台建设随想
- vc error C2664: 不能将参数 2 从“CString”转换为“LPTSTR”解决方法
- 我觉得我不会怎么经常更新.
- listview中的editText无法输入无法聚焦等问题
- java中PriorityQueue优先级队列使用方法
- android.database.sqlite.SQLiteException: table tb_diary2 has no column named recordPath 解决办法
- java vector,list,map,stack,queue
- 简单音频播放器
- XCode快捷键
- 【原创】Unity T4M 中文讲解
- MD5加密应用之.NET与JAVA差异分析
- 第06课 ARM中断
- Android RippleEffect波纹效果,重写ViewGroup