大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) Java基礎(chǔ)學(xué)習(xí):什么是java優(yōu)先隊(duì)列

Java基礎(chǔ)學(xué)習(xí):什么是java優(yōu)先隊(duì)列

更新時(shí)間:2020-04-08 12:27:14 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2673次


    該P(yáng)riorityQueue中是很重要的一個(gè)Java的建立在無(wú)界優(yōu)先級(jí)隊(duì)列和優(yōu)先級(jí)堆的API。本文通過(guò)適當(dāng)?shù)拇a示例介紹了有關(guān)此API及其使用的一些復(fù)雜信息。


    概觀


    的的PriorityQueue類是一部分的java.util包,是一個(gè)通用的實(shí)現(xiàn)Java中的基于優(yōu)先級(jí)的隊(duì)列。甲隊(duì)列基本上是一個(gè)數(shù)據(jù)結(jié)構(gòu),用于定義特定規(guī)范來(lái)插入和從存放物品的檢索的處理。這個(gè)想法非常類似于許多人站在隊(duì)列中說(shuō),獲得一張票。站在隊(duì)列中的第一個(gè)人獲得了獲得機(jī)票的第一個(gè)機(jī)會(huì),最后一個(gè)人獲得了一個(gè)機(jī)會(huì)。人們被添加到隊(duì)列的末尾或尾端。向隊(duì)列添加項(xiàng)目在技術(shù)上稱為入隊(duì)過(guò)程,從隊(duì)列中刪除的項(xiàng)目來(lái)自行中的第一個(gè)項(xiàng)目。這被稱為出隊(duì)。我們的想法是以FIFO(先進(jìn)先出)的方式對(duì)元素進(jìn)行排序。


    現(xiàn)在,這是最簡(jiǎn)單的架構(gòu),并且緊密地定義了隊(duì)列實(shí)際意味著什么以及如何在計(jì)算機(jī)中進(jìn)行模擬。甲商店通常由一個(gè)簡(jiǎn)單的陣列,其中所述存儲(chǔ)和檢索過(guò)程有這樣的定義范數(shù)表示。優(yōu)先級(jí)隊(duì)列強(qiáng)加了一些特殊規(guī)范。我們將看到更多的內(nèi)容。


    Java實(shí)現(xiàn)隊(duì)列


    JavaAPI在java.util包中具有通用接口名稱Queue<E>。這是JavaCollectionFrameworkAPI的一部分,旨在在處理之前保存元素。作為Collection的一部分,它具有所有基本的Collection操作。特定于其身份的操作涉及插入,提取和檢查存儲(chǔ)在其中的元素。這些操作中的每一個(gè)都有兩種不同的形式,例如,如果操作失敗則拋出異常,另一種返回特殊值,例如null或false,具體取決于操作。注意與典型隊(duì)列不同,JavaQueue的具體實(shí)現(xiàn)不一定以FIFO方式排序元素。對(duì)于基于優(yōu)先級(jí)的隊(duì)列尤其如此,其中元素的排序是根據(jù)提供的比較器或自然順序完成的。但無(wú)論順序如何,remove()或poll()方法將始終檢索隊(duì)列頭部的元素。這兩種不太可能的方法之間的具體區(qū)別似乎是一個(gè)類似的方法是一個(gè)拋出異常(NoSuchElementException)失敗,而后者返回(null),一個(gè)特殊的值。


Java基礎(chǔ)學(xué)習(xí):什么是java優(yōu)先隊(duì)列


    請(qǐng)注意,Queue<E>接口不適合在并發(fā)編程中使用,因?yàn)樗鼪](méi)有定義阻塞隊(duì)列方法,其中enqueue和dequeue進(jìn)程等待元素出現(xiàn)在隊(duì)列中或大小可用。有一個(gè)名為BlockingQueue<E>的特定接口,它擴(kuò)展了Queue<E>接口并解決了這些問(wèn)題。


    有一個(gè)名為AbstractQueue<E>的抽象類,它提供了一些隊(duì)列操作的部分實(shí)現(xiàn)。所述的PriorityQueue<E>類是這個(gè)抽象類的直接延伸。


    優(yōu)先級(jí)隊(duì)列


    優(yōu)先級(jí)隊(duì)列的Java實(shí)現(xiàn)是一種特殊類型的隊(duì)列,其中元素的排序由其自然排序原則確定或根據(jù)創(chuàng)建期間提供的比較器定制。我們?cè)跇?gòu)造期間調(diào)用的構(gòu)造函數(shù)決定了與優(yōu)先級(jí)隊(duì)列一起使用的排序原則。與Queue<E>不同,它不允許null元素,但是某些實(shí)現(xiàn)-例如LinkedList-do也不禁止插入null元素。但是,PriorityQueue<E>根本不允許使用null元素。如果優(yōu)先級(jí)隊(duì)列是根據(jù)自然順序構(gòu)造的,則會(huì)拋出任何不可比較的元素插入ClassCastException。


    它被聲明是無(wú)限的并且基于優(yōu)先級(jí)堆。雖然隊(duì)列的大小被稱為無(wú)界,但是有一個(gè)內(nèi)部容量來(lái)確定數(shù)組的大小。插入元素時(shí),此大小會(huì)自動(dòng)增大。但是,沒(méi)有具體說(shuō)明尺寸增加的原則的細(xì)節(jié)。


    有七種類型的重載構(gòu)造函數(shù),我們可以通過(guò)它們?cè)O(shè)置參數(shù)來(lái)指定隊(duì)列的初始容量,為Comparator提供指定元素的自定義排序,或者使用無(wú)參數(shù)構(gòu)造函數(shù)接受默認(rèn)值。


    PriorityQueue中()


    PriorityQueue(intinitialCapacity)


    PriorityQueue(intinitialCapacity,Comparator<?SuperE>comparator)


    PriorityQueue(Commection<?extendsE>c)


    PriorityQueue(比較器<?SuperE>比較器)


    PriorityQueue(PriorityQueue<?extendsE>c)


    PriorityQueue(SortedSet<?extendsE>c)


    與Queue<E>類似,PriorityQueue<E>也不同步,因此應(yīng)在并發(fā)編程中謹(jǐn)慎使用。但是,有一個(gè)同步替代它,稱為PriorityBlockingQueue<E>。這與PriorityQueue<E>的工作方式相同,只是具有線程安全的附加資格。


    PriorityQueue<E>中定義的操作與Queue<E>相同,但增加了一些。


Java基礎(chǔ)學(xué)習(xí):什么是java優(yōu)先隊(duì)列


    快速示例#1


    讓我們用一個(gè)簡(jiǎn)單的程序?qū)崿F(xiàn)PriorityQueue<E>的一些操作。


Java基礎(chǔ)學(xué)習(xí):什么是java優(yōu)先隊(duì)列


    產(chǎn)量


Java基礎(chǔ)學(xué)習(xí):什么是java優(yōu)先隊(duì)列


    快速示例#2


    這是另一個(gè)自定義比較器的快速示例。


Java基礎(chǔ)學(xué)習(xí):什么是java優(yōu)先隊(duì)列


    產(chǎn)量


Java基礎(chǔ)學(xué)習(xí):什么是java優(yōu)先隊(duì)列


    結(jié)論


    優(yōu)先級(jí)隊(duì)列的附加規(guī)范是從列表中刪除的項(xiàng)具有最高優(yōu)先級(jí)。Java將優(yōu)先級(jí)規(guī)則強(qiáng)加給普通隊(duì)列的方式是附加元素的排序原則。此訂單可以根據(jù)程序員的要求進(jìn)行自定義,也可以設(shè)置為默認(rèn)。這是Java中優(yōu)先級(jí)隊(duì)列實(shí)現(xiàn)的本質(zhì)。


  以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java基礎(chǔ)學(xué)習(xí):什么是java優(yōu)先隊(duì)列”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。


提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: baoyu777永久免费视频 | 99久久综合狠狠综合久久aⅴ | 奇米影视播放器 | 91aaa免费观看在线观看资源 | 一级片影院 | 成人a毛片在线看免费全部播放 | 91在线精品 | 中文字幕一区二区三区有限公司 | ww亚洲ww在线观看国产 | 久草加勒比 | 久久不卡精品 | 欧美日韩中文在线观看 | 亚洲 欧美 日韩在线综合福利 | 精品国产乱码久久久久久浪潮 | 亚洲欧美国产精品久久久 | 玖玖国产精品视频 | 特级女人十八毛片a级 | 日本一级特级毛片视频 | 久久机热re这里只有精品15 | 中文字幕亚洲综合久久菠萝蜜 | 中文字幕精品一区二区精品 | 日日摸夜夜添夜夜添一区二区 | 麻豆亚洲精品一区二区 | 四虎影视库 | jiucao视频在线观看 | 国内视频精品 | 亚洲国产精品成人午夜在线观看 | 精品欧美高清一区二区免费 | 麻豆国产在线不卡一区二区 | 亚洲国产欧美视频 | 二区不卡| 欧美一级片在线视频 | 国产尤物视频在线 | 久久66热re国产毛片基地 | 91精品国产高清91久久久久久 | 国产欧美久久精品 | 成熟日本语热亚洲人 | 日日操夜夜操免费视频 | 在线国产区 | 亚洲精品国产综合一线久久 | 99久久99久久精品国产 |