最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解析Java中的隊列和用LinkedList集合模擬隊列的方法

 更新時間:2015年08月06日 10:27:53   作者:zinss26914  
這篇文章主要介紹了解析Java中的隊列和用LinkedList集合模擬隊列的方法,相關(guān)算法的實現(xiàn)也是ACM中的常見題目,需要的朋友可以參考下

API中對隊列的說明:
 

public interface Queue<E>
extends Collection<E>

在處理元素前用于保存元素的 collection。除了基本的 Collection 操作外,隊列還提供其他的插入、提取和檢查操作。每個方法都存在兩種形式:一種拋出異常(操作失敗時),另一種返回一個特殊值(null 或 false,具體取決于操作)。插入操作的后一種形式是用于專門為有容量限制的 Queue 實現(xiàn)設(shè)計的;在大多數(shù)實現(xiàn)中,插入操作不會失敗。

201586102759996.jpg (209×150)

隊列通常(但并非一定)以 FIFO(先進(jìn)先出)的方式排序各個元素。不過優(yōu)先級隊列和 LIFO 隊列(或堆棧)例外,前者根據(jù)提供的比較器或元素的自然順序?qū)υ剡M(jìn)行排序,后者按 LIFO(后進(jìn)先出)的方式對元素進(jìn)行排序。無論使用哪種排序方式,隊列的頭 都是調(diào)用 remove() 或 poll() 所移除的元素。在 FIFO 隊列中,所有的新元素都插入隊列的末尾。其他種類的隊列可能使用不同的元素放置規(guī)則。每個 Queue 實現(xiàn)必須指定其順序?qū)傩浴?br /> 如果可能,offer 方法可插入一個元素,否則返回 false。這與 Collection.add 方法不同,該方法只能通過拋出未經(jīng)檢查的異常使添加元素失敗。offer 方法設(shè)計用于正常的失敗情況,而不是出現(xiàn)異常的情況,例如在容量固定(有界)的隊列中。
remove() 和 poll() 方法可移除和返回隊列的頭。到底從隊列中移除哪個元素是隊列排序策略的功能,而該策略在各種實現(xiàn)中是不同的。remove() 和 poll() 方法僅在隊列為空時其行為有所不同:remove() 方法拋出一個異常,而 poll() 方法則返回 null。
element() 和 peek() 返回,但不移除,隊列的頭。
Queue 接口并未定義阻塞隊列的方法,而這在并發(fā)編程中是很常見的。BlockingQueue 接口定義了那些等待元素出現(xiàn)或等待隊列中有可用空間的方法,這些方法擴(kuò)展了此接口。
Queue 實現(xiàn)通常不允許插入 null 元素,盡管某些實現(xiàn)(如 LinkedList)并不禁止插入 null。即使在允許 null 的實現(xiàn)中,也不應(yīng)該將 null 插入到 Queue 中,因為 null 也用作 poll 方法的一個特殊返回值,表明隊列不包含元素。
Queue 實現(xiàn)通常未定義 equals 和 hashCode 方法的基于元素的版本,而是從 Object 類繼承了基于身份的版本,因為對于具有相同元素但有不同排序?qū)傩缘年犃卸?,基于元素的相等性并非總是定義良好的。

在java里使用隊列可以用LinkedList集合進(jìn)行模擬


方法
使用LinkedList集合,并使用其中的addLast、removeFirst、isEmpty等API集體模擬隊列操作

入隊列

  void addLast(E e); // 將元素插入此列表的結(jié)尾 

出隊列

  E removeFirst(); // 移除并返回列表的第一個元素 

判空

  boolean isEmpty(); // 判斷隊列是否為空  

示例代碼

    

package coreJavaOne; 
   
  import java.util.LinkedList; 
  import java.util.NoSuchElementException; 
   
  public class SimulateQueue { 
    private LinkedList<Integer> queue = new LinkedList<Integer>(); 
   
    public boolean isEmpty() { 
      return this.queue.isEmpty(); 
    } 
   
    public void enQueue(int data) { 
      this.queue.addLast(data); 
    } 
   
    public int deQueue() throws NoSuchElementException { 
      return this.queue.removeFirst(); 
    } 
   
    public static void main(String[] args) { 
      SimulateQueue q = new SimulateQueue(); 
   
      q.enQueue(1); 
      q.enQueue(2); 
      q.enQueue(3); 
   
      while (! q.isEmpty()) { 
        int data = q.deQueue(); 
        System.out.println(data); 
      } 
    } 
  } 

您可能感興趣的文章:

相關(guān)文章

  • Java優(yōu)秀類庫Hutool使用示例

    Java優(yōu)秀類庫Hutool使用示例

    Hutool是一個小而全的Java工具類庫,通過靜態(tài)方法封裝,降低相關(guān)API的學(xué)習(xí)成本,提高工作效率,涵蓋了Java開發(fā)開發(fā)中的方方面面,使用Hutool可節(jié)省開發(fā)人員對項目中公用類和公用工具方法的封裝時間,使開發(fā)專注于業(yè)務(wù),同時可以最大限度的避免封裝不完善帶來的bug
    2023-02-02
  • JAVA中ListIterator和Iterator詳解與辨析(推薦)

    JAVA中ListIterator和Iterator詳解與辨析(推薦)

    這篇文章主要介紹了JAVA中ListIterator和Iterator詳解與辨析,需要的朋友可以參考下
    2017-04-04
  • Java獲取IP地址以及MAC地址的示例代碼

    Java獲取IP地址以及MAC地址的示例代碼

    IP地址是用于在網(wǎng)絡(luò)上識別設(shè)備的唯一地址,而MAC地址是設(shè)備的物理地址,本文主要介紹了Java獲取IP地址以及MAC地址的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2024-04-04
  • 基于spring boot 2和shiro實現(xiàn)身份驗證案例

    基于spring boot 2和shiro實現(xiàn)身份驗證案例

    這篇文章主要介紹了基于spring boot 2和shiro實現(xiàn)身份驗證案例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • 在Java中實現(xiàn)讓線程按照自己指定的順序執(zhí)行

    在Java中實現(xiàn)讓線程按照自己指定的順序執(zhí)行

    這篇文章主要介紹了在Java中實現(xiàn)讓線程按照自己指定的順序執(zhí)行,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Spring初始化和銷毀的實現(xiàn)方法

    Spring初始化和銷毀的實現(xiàn)方法

    這篇文章主要介紹了Spring初始化和銷毀的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • 大模型chat/completions和completions區(qū)別解析

    大模型chat/completions和completions區(qū)別解析

    OpenAI的completions和chat/completions是兩個不同的端點,completions用于單次文本補全,而chat/completions用于多輪對話生成,選擇哪個端點取決于你的具體需求,本文介紹大模型chat/completions和completions區(qū)別,感興趣的朋友一起看看吧
    2025-03-03
  • JPA之@EnableJpaAuditing注解使用

    JPA之@EnableJpaAuditing注解使用

    這篇文章主要介紹了JPA之@EnableJpaAuditing注解使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Hadoop MultipleOutputs輸出到多個文件中的實現(xiàn)方法

    Hadoop MultipleOutputs輸出到多個文件中的實現(xiàn)方法

    這篇文章主要介紹了 Hadoop MultipleOutputs輸出到多個文件中的實現(xiàn)方法的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-10-10
  • MyBatis中PageHelper不生效的解決方案

    MyBatis中PageHelper不生效的解決方案

    這篇文章主要介紹了MyBatis中PageHelper不生效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06

最新評論

普陀区| 灵丘县| 汕尾市| 隆林| 宕昌县| 揭东县| 六盘水市| 安泽县| 嘉善县| 铁岭市| 柳林县| 梁河县| 枣庄市| 九江县| 嵊州市| 福泉市| 司法| 班戈县| 雷州市| 宁晋县| 金门县| 德清县| 四川省| 金秀| 吴江市| 蕲春县| 久治县| 长乐市| 渑池县| 北宁市| 鄂尔多斯市| 波密县| 五台县| 侯马市| 商都县| 兴文县| 沙坪坝区| 呈贡县| 通化市| 辽源市| 泾源县|