• 队列Queue和栈


    1、队列Queue是常用的数据结构,可以将队列看成特殊的线性表,队列限制了对线性表的访问方式,只能从线性表的一段添加(offer)元素,

          从另一段取出(poll)元素,队列遵循先进先出的原则。

    2、JDK中提供了Queue接口,同时使得LinkList实现了该接口,选择LinkList实现Queue的原因是Queue经常要进行添加和删除的操作 ,而LinkList在这方面效率较高。

    3、Queue接口的主要方法:

          1)boolean offer(E  e) 将一个对象添加至队尾,如果添加成功则返回true。

          2)E  poll  从对首返回一个元素,并删除此元素。

          3)E  peek  返回一个元素(但并不删除此元素)

                              public void testQueue() {

                              Queue<String> queue = new LinkedList<String>();

                               queue.offer("a");

                                queue.offer("b");

                                queue.offer("c");

                               System.out.println(queue); // [a, b, c]

                               String str = queue.peek();

                                System.out.println(str); // a

                                while (queue.size() > 0) {

                                 str = queue.poll();

                                System.out.print(str + " "); // a b c}}

    4、Deque是Queue的子接口,定义了所谓的双端队列,即从队列的两端分别可以入队(offer)和出队(poll),LinkList实现了该接口,

         如果将Deque限制为只能从一端入队和出队,则可实现 栈(Stack)的数据结构,对于栈而言,入栈称之为push,出栈称之为pop,栈遵循先进后出的原则。

         使用Deque提供的peek方法,可以查看栈顶元素,并查看栈顶元素。

                          public void testStack() {

                          Deque<String> stack = new LinkedList<String>();

                          stack.push("a");

                          stack.push("b");

                          stack.push("c");

                          System.out.println(stack); // [c, b, a]

                          String str = stack.peek();

                           System.out.println(str); // c

                          //循环删除栈顶元素

                           while (stack.size() > 0) {

                            str = stack.pop();

                            System.out.print(str + " "); // c b a}

    }

  • 相关阅读:
    Hbase集群部署及shell操作
    sqoop部署与使用
    azkaban部署
    Hive入门操作
    Hive部署
    MapReduce过程详解(基于hadoop2.x架构)
    MapReduce编程中常用的字符操作
    【图文详解】深入HDFS原理
    vue项目跨域问题的解决:vue-cli 开启代理
    beego框架入门(2)
  • 原文地址:https://www.cnblogs.com/sunfenqing/p/7460428.html
Copyright © 2020-2023  润新知