zoukankan      html  css  js  c++  java
  • 紧接着上篇文章,实现类一个是标准的FIFO,一个是出队在头部入队不一定追加到末尾



    注意描述:一个是插入队列(1是可以插入尾部eg一遍的序列尾部追加,2是可以插入中间eg优先队列)

    而移除的描素都是删除头部

    import java.util.Comparator;
    import java.util.PriorityQueue;
    import java.util.Queue;
    
    public class test {
        private String name;
        private int score;
        public test(String name, int population){
            this.name = name;
            this.score = population;
        }
        public String getName(){
             return this.name;
        }
    
        public int getScore(){
             return this.score;
        }
        
        public String toString(){
             return getName() + " : " + getScore(); //还有这种操作
        }
        /*以上的javabean结束*/
        public static void main(String args[]){
            Comparator<test> OrderIsdn =  new Comparator<test>(){ //自己的意愿进行优先级排列的队列的话,
                public int compare(test o1, test o2) {  // 需要实现Comparator接口。
                    // TODO Auto-generated method stub
                    int numbera = o1.getScore();
                    int numberb = o2.getScore();
                    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",80); test t3 = new test("t3",88); test t2 = new test("t2",99); test t4 = new test("t4",87); priorityQueue.add(t1); priorityQueue.add(t3); priorityQueue.add(t2); priorityQueue.add(t4); // add可以添加到尾部,或者其他的如优先队列(就看实现类怎么实现) System.out.println(priorityQueue); //[t2 : 99, t4 : 87, t3 : 88, t1 : 80] while(!priorityQueue.isEmpty()) System.out.println(priorityQueue.poll().toString());//移除都是头部 /** * t2 : 99 t3 : 88 t4 : 87 t1 : 80 */

        
        Queue<Integer> q1  = new LinkedList<Integer>();
            q1.add(10);
            q1.add(8);
            System.out.println("添加一个元素之后"+q1);
            q1.add(9);
            System.out.println("添加两个元素之后"+q1);
        //    q.add(1);
            System.out.println("添加三个元素之后"+q1);
          
            while(!q1.isEmpty()){
            q1.remove();
            System.out.println("移除元素之后"+q1);
            }
        }
    }
    		//Queue是一个抽象的,LinkedList是一个具体的实现类
    		Queue<Integer> q  = new PriorityQueue<Integer>();   //默认的优先顺序
    		q.add(10);
    		q.add(8);
    		System.out.println("添加一个元素之后"+q);
    		q.add(9);
    		System.out.println("添加两个元素之后"+q);
            	//q.add(1);
    		System.out.println("添加三个元素之后"+q);
    	
    		while(!q.isEmpty()){
    		q.remove();
    		System.out.println("移除元素之后"+q);
    		}
    

      


  • 相关阅读:
    Alter the structure of web pages with JavaScript
    The Image Gallery Revisited
    Best Practices in JavaScript
    使用eclipse生成文档(javadoc)
    字符串截取 方法 String b=a.substring(0, a.indexOf("乘坐"));
    SQL工具-压力测试工具
    SQL工具-技术支持工具
    SQL Server设置启动存储过程
    EntityFramework
    SQL Server 数据库状态选项-用户使用
  • 原文地址:https://www.cnblogs.com/cs-lcy/p/7392708.html
Copyright © 2011-2022 走看看