zoukankan      html  css  js  c++  java
  • java中PriorityQueue优先级队列使用方法

     优先级队列是不同于先进先出队列的另一种队列。每次从队列中取出的是具有最高优先权的元素。

     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());
    	}
    }
    

      

  • 相关阅读:
    php 接触
    PHP Session可能会引起并发问题
    PHP大神的十大优良习惯
    PHP开发经验总结
    php命令行用法简介
    Python正则表达式指南
    PHP开发经验总结
    PHP命名空间概念解析
    高性能Web框架Zend Framework
    PHP代码优化技巧大盘点
  • 原文地址:https://www.cnblogs.com/zuolun2017/p/5691591.html
Copyright © 2011-2022 走看看