zoukankan      html  css  js  c++  java
  • 28、队列和栈

    1、队列Queue

      在java5中新增加了java.util.Queue接口,用以支持队列的常见操作。该接口扩展了java.util.Collection接口。Queue使用时要尽量避免Collection的add()和remove()方法,而是要使用offer()来加入元素,使用poll()来获取并移出元素。它们的优点是通过返回值可以判断成功与否,add()和remove()方法在失败的时候会抛出异常。 如果要使用前端而不移出该元素,使用element()或者peek()方法。值得注意的是LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。

      Queue提供了操作队列的相关方法,其主要方法如下:

      boolean offer(E e):将元素追加到队列末尾,若添加成功则返回true。

      E poll():从队首删除并返回该元素。

      E peek():返回队首元素,但是不删除。

     1 Queue<String> queue=new LinkedList<String>();
     2 //入队
     3 queue.offer("a");
     4 queue.offer("b");
     5 queue.offer("c");
     6 System.out.println(queue);
     7 System.out.println(queue.element());  //获取队首a,但不删除队首
     8 System.out.println(queue.peek());     //获取队首a,但不删除队首
     9 //出队
    10 while(queue.size()>0){
    11     System.out.println(queue.poll());//a、b、c 
    12 }

    2、Deque(双队列)

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

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

      栈遵循先进后出(FILO First Input Last Output )的原则。

      Deque提供了操作栈的相关方法,其主要方法如下:

      void push(E e):将给定元素"压入"栈中。存入的元素会在栈首。即:栈的第一个元素

      E pop():将栈首元素删除并返回。

    1 Deque deque = new LinkedList();
    2 deque.push("a");
    3 deque.push("b");
    4 deque.push("c");
    5 while(deque.size()>0){
    6     System.out.println(deque.pop());  //c、b、a
    7 }
  • 相关阅读:
    DBA_VMware虚拟机安装和简介(案例)
    DBA_Oracle基本体系内存和进程结构(概念)
    IREP_SOA Integration SOAP概述(概念)
    IREP_SOA Integration WSDL概述(概念)
    IREP_SOA Integration程序注释语法Annotations(概念)
    DBA_Oracle日志文件
    BPEL_Oracle BPEL新一代工作流介绍(概念)
    DBA_Oracle基本体系架构(概念)
    DBA_Tablespace表空间的概念和管控(概念)
    WebADI_Oracle ERP R12使用前WebADI设定(案例)
  • 原文地址:https://www.cnblogs.com/caoyc/p/4603957.html
Copyright © 2011-2022 走看看