紧接着上篇文章,实现类一个是标准的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);
		}

  


原文地址:https://www.cnblogs.com/cs-lcy/p/7392708.html