• 队列


    队列的特点:

    队列是一种特殊的线性结构,它只允许在队列的首部(head)进行删除操作,这称为“出队”,而在队列的尾部(tail)进行插入操作,这称为“入队”,当队列中没有元素时(即head==tail),称为空队列。
    队列将是我们今后学习广搜以及队列优化(Bellman-Ford)最短路算法的核心数据结构。
    代码如下:

    import java.util.LinkedList;
    import java.util.Queue;
    public class D队列 {
    
    	public static void main(String[] args) {
    		
    		        Queue<Integer> queue = new LinkedList<>();//创建队列
    		        queue.offer(1);//以下是添加元素进对列
    		        queue.offer(2);
    		        queue.offer(3);
    		        queue.offer(4);
    		        for(int e : queue) {//遍历输出,定义一个变量e遍历队列输出
    		            System.out.println(e);//1 2 3 4 
    		        }
    		        System.out.println("**********");
    		        System.out.println("poll : " + queue.poll());//1,poll取出并删除队头的元素
    		        System.out.println("----------");
    
    		        for(int e : queue) {
    		            System.out.println(e); //2 3 4 
    		        }
    		        System.out.println("elemet is: " + queue.element());//2
    		        System.out.println("----------");
    
    		        for(int e : queue) {
    		            System.out.println(e);//2 3 4 
    		        }
    
    		        System.out.println("peek : " + queue.peek());//2
    		        System.out.println("**********");
    
    		        for(int e : queue) {
    		            System.out.println(e);//2 3 4
    		        }
    	}
    }
    

    1.Java中队列的创建以及头文件

     Queue<Integer> queue = new LinkedList<>();
    
    头文件:
    import java.util.LinkedList;
    import java.util.Queue;
    

    2.关于队列的“出入”

    往队列中添加元素:add(如果队列已经满,则抛出异常);
                    put( 如果已经满了,则等待它为空或者抛出异常);
                    offer(已满,返回false);
    从队列中取出或者删除元素:
                    remove(直接删除队头的元素);
                    peek(直接取出队头元素并不删除);
                    element(对peek方法进行简单封装,如果队头元素存在则取出,不存在则抛出异常);
                    poll(取出并删除队头的元素,当队列为空则返回null);
                    take(取出并删除队头元素,为空则等待或者抛出异常);
    offer()方法一般与pool()方法相对应;
    put方法一般与take(方法相对应);
    

    3.对上述代码的分解
    (1).poll()

    System.out.println("poll : " + queue.poll());//1,poll取出并删除队头的元素
    

    (2).element()

    System.out.println("elemet is: " + queue.element());//2因为上一个已经删除了队头元素1,所以此时队头元素是2,直接取出。
    

    (3).peek()

    System.out.println("peek : " + queue.peek());//2直接取出并不删除
    

    作者:Better又
    出处:https://www.cnblogs.com/lwyy1223-/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    每个程序员都应该了解的内存知识
    关于CPU Cache -- 程序猿需要知道的那些事
    【转载】十分钟搞清字符集和字符编码
    初学 Java Web 开发,请远离各种框架,从 Servlet 开发
    XML
    接口比对象更加抽象
    【转载】Dom4j的使用(全而好的文章)
    BZOJ4870:[SHOI2017]组合数问题(组合数学,矩阵乘法)
    BZOJ1089:[SCOI2003]严格n元树(DP,高精度)
    BZOJ1259:[CQOI2007]矩形rect(DFS)
  • 原文地址:https://www.cnblogs.com/lwyy1223-/p/12603636.html
Copyright © 2020-2023  润新知