新聞中心
PriorityQueue

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、成都小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了下陸免費(fèi)建站歡迎大家使用!
java.lang.Object
|---java.util.AbstractCollection
|---|---java.util.AbstractQueue
|---|---|---java.util.PriorityQueue
public class PriorityQueue
extends AbstractQueue
implements Serializable
基于優(yōu)先級(jí)堆的無界優(yōu)先級(jí)隊(duì)列。 優(yōu)先級(jí)隊(duì)列的元素根據(jù)它們的 Comparable 或在隊(duì)列構(gòu)造時(shí)提供的 Comparator 排序,具體取決于使用的構(gòu)造函數(shù)。 優(yōu)先級(jí)隊(duì)列不允許空元素。 依賴于自然排序的優(yōu)先級(jí)隊(duì)列也不允許插入不可比較的對(duì)象(這樣做可能會(huì)導(dǎo)致 ClassCastException)。
此隊(duì)列的頭部是相對(duì)于指定排序的最小元素。 如果多個(gè)元素以最低值綁定,則頭部是這些元素之一——綁定被任意打破。 隊(duì)列檢索操作 poll、remove、peek 和 element 訪問隊(duì)列頭部的元素。
優(yōu)先級(jí)隊(duì)列是無界的,但具有控制用于存儲(chǔ)隊(duì)列元素的數(shù)組大小的內(nèi)部容量。 它總是至少與隊(duì)列大小一樣大。 隨著元素被添加到優(yōu)先級(jí)隊(duì)列中,其容量會(huì)自動(dòng)增長。 增長政策的細(xì)節(jié)沒有具體說明。
此類及其迭代器實(shí)現(xiàn)了 Collection 和 Iterator 接口的所有可選方法。 方法 iterator() 中提供的 Iterator 不能保證以任何特定順序遍歷優(yōu)先級(jí)隊(duì)列的元素。 如果您需要有序遍歷,請(qǐng)考慮使用 Arrays.sort(pq.toArray())。
請(qǐng)注意,此實(shí)現(xiàn)不同步。 如果任何線程修改隊(duì)列,則多個(gè)線程不應(yīng)同時(shí)訪問 PriorityQueue 實(shí)例。 相反,請(qǐng)使用線程安全的 PriorityBlockingQueue 類。
實(shí)現(xiàn)說明:此實(shí)現(xiàn)為入隊(duì)和出隊(duì)方法(offer、poll、remove() 和 add)提供 O(log(n)) 時(shí)間; remove(Object) 和 contains(Object) 方法的線性時(shí)間; 檢索方法(peek、元素和大?。┑暮愣〞r(shí)間。
此類是 Java 集合框架的成員。
構(gòu)造函數(shù)摘要
| 構(gòu)造函數(shù) | 描述 |
|---|---|
| PriorityQueue() | 創(chuàng)建一個(gè)具有默認(rèn)初始容量 (11) 的 PriorityQueue,根據(jù)它們的 Comparable 對(duì)其元素進(jìn)行排序。 |
| PriorityQueue(int initialCapacity) | 創(chuàng)建一個(gè)具有指定初始容量的 PriorityQueue,根據(jù)它們的 Comparable 對(duì)其元素進(jìn)行排序。 |
| PriorityQueue(int initialCapacity, Comparator super E> comparator) | 創(chuàng)建一個(gè)具有指定初始容量的 PriorityQueue,它根據(jù)指定的比較器對(duì)其元素進(jìn)行排序。 |
| PriorityQueue(Collection extends E> c) | 創(chuàng)建一個(gè)包含指定集合中元素的 PriorityQueue。 |
| PriorityQueue(Comparator super E> comparator) | 創(chuàng)建一個(gè)具有默認(rèn)初始容量的 PriorityQueue,其元素根據(jù)指定的比較器進(jìn)行排序。 |
| PriorityQueue(PriorityQueue extends E> c) | 創(chuàng)建一個(gè)包含指定優(yōu)先級(jí)隊(duì)列中元素的 PriorityQueue。 |
| PriorityQueue(SortedSet extends E> c) | 創(chuàng)建一個(gè)包含指定排序集中元素的 PriorityQueue。 |
方法總結(jié)
| 修飾符和類型 | 方法 | 描述 |
|---|---|---|
| boolean | add(E e) | 將指定元素插入此優(yōu)先級(jí)隊(duì)列。 |
| void | clear() | 從此優(yōu)先級(jí)隊(duì)列中刪除所有元素。 |
| Comparator super E> | comparator() | 返回用于對(duì)該隊(duì)列中的元素進(jìn)行排序的比較器,如果此隊(duì)列根據(jù)其元素的 Comparable 進(jìn)行排序,則返回 null。 |
| boolean | contains(Object o) | 如果此隊(duì)列包含指定元素,則返回 true。 |
| IteratorE | iterator() | 返回此隊(duì)列中元素的迭代器。 |
| boolean | offer(E e) | 將指定元素插入此優(yōu)先級(jí)隊(duì)列。 |
| E | peek() | 檢索但不刪除此隊(duì)列的頭部,如果此隊(duì)列為空,則返回 null。 |
| E | poll() | 檢索并刪除此隊(duì)列的頭部,如果此隊(duì)列為空,則返回 null。 |
| boolean | remove(Object o) | 從此隊(duì)列中移除指定元素的單個(gè)實(shí)例(如果存在)。 |
| int | size() | 返回此集合中的元素?cái)?shù)。 |
| SpliteratorE | spliterator() | 在此隊(duì)列中的元素上創(chuàng)建一個(gè)后期綁定和快速失敗的拆分器。 |
| Object[] | toArray() | 返回一個(gè)包含此隊(duì)列中所有元素的數(shù)組。 |
| toArray(T[] a) | 返回一個(gè)包含此隊(duì)列中所有元素的數(shù)組; 返回?cái)?shù)組的運(yùn)行時(shí)類型是指定數(shù)組的運(yùn)行時(shí)類型。 |
| 從類 java.util.AbstractCollection 繼承的方法 |
|---|
| containsAll, isEmpty, removeAll, retainAll, toString |
| 從類 java.util.AbstractQueue 繼承的方法 |
|---|
| addAll, element, remove |
| 從接口 java.util.Collection 繼承的方法 |
|---|
| containsAll, equals, hashCode, isEmpty, parallelStream, removeAll, removeIf, retainAll, stream |
| 從接口 java.lang.Iterable 繼承的方法 |
|---|
| forEach |
| 從類 java.lang.Object 繼承的方法 |
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
構(gòu)造函數(shù)詳細(xì)信息
PriorityQueue
public PriorityQueue()
創(chuàng)建一個(gè)具有默認(rèn)初始容量 (11) 的 PriorityQueue,根據(jù)它們的 Comparable 對(duì)其元素進(jìn)行排序。
PriorityQueue
public PriorityQueue(int initialCapacity)
創(chuàng)建一個(gè)具有指定初始容量的 PriorityQueue,根據(jù)它們的 Comparable 對(duì)其元素進(jìn)行排序。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| initialCapacity | 此優(yōu)先級(jí)隊(duì)列的初始容量 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IllegalArgumentException | 如果 initialCapacity 小于 1 |
PriorityQueue
public PriorityQueue(Comparator super E> comparator)
創(chuàng)建一個(gè)具有默認(rèn)初始容量的 PriorityQueue,其元素根據(jù)指定的比較器進(jìn)行排序。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| comparator | 將用于排序此優(yōu)先級(jí)隊(duì)列的比較器。 如果為 null,則將使用元素的 Comparable。 |
PriorityQueue
public PriorityQueue(int initialCapacity, Comparator super E> comparator)
創(chuàng)建一個(gè)具有指定初始容量的 PriorityQueue,它根據(jù)指定的比較器對(duì)其元素進(jìn)行排序。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| initialCapacity | 此優(yōu)先級(jí)隊(duì)列的初始容量 |
| comparator | 將用于排序此優(yōu)先級(jí)隊(duì)列的比較器。 如果為 null,則將使用元素的 Comparable。 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IllegalArgumentException | 如果 initialCapacity 小于 1 |
PriorityQueue
public PriorityQueue(Collection extends E> c)
創(chuàng)建一個(gè)包含指定集合中元素的 PriorityQueue。 如果指定的集合是一個(gè) SortedSet 的實(shí)例或者是另一個(gè) PriorityQueue,那么這個(gè)優(yōu)先級(jí)隊(duì)列將按照相同的順序進(jìn)行排序。 否則,此優(yōu)先級(jí)隊(duì)列將根據(jù)其元素的 Comparable 進(jìn)行排序。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| c | 將其元素放入此優(yōu)先級(jí)隊(duì)列的集合 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| ClassCastException | 如果指定集合的元素不能根據(jù)優(yōu)先級(jí)隊(duì)列的順序相互比較 |
| NullPointerException | 如果指定的集合或其任何元素為空 |
PriorityQueue
public PriorityQueue(PriorityQueue extends E> c)
創(chuàng)建一個(gè)包含指定優(yōu)先級(jí)隊(duì)列中元素的 PriorityQueue。 此優(yōu)先級(jí)隊(duì)列將按照與給定優(yōu)先級(jí)隊(duì)列相同的順序進(jìn)行排序。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| c | 將其元素放入此優(yōu)先級(jí)隊(duì)列的優(yōu)先級(jí)隊(duì)列 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| ClassCastException | 如果 c 的元素不能根據(jù) c 的順序相互比較 |
| NullPointerException | 如果指定的優(yōu)先級(jí)隊(duì)列或其任何元素為空 |
PriorityQueue
public PriorityQueue(SortedSet extends E> c)
創(chuàng)建一個(gè)包含指定排序集中元素的 PriorityQueue。 此優(yōu)先級(jí)隊(duì)列將按照與給定排序集相同的順序進(jìn)行排序。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| c | 將其元素放入此優(yōu)先級(jí)隊(duì)列的有序集合 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| ClassCastException | 如果指定的有序集合的元素不能根據(jù)有序集合的順序相互比較 |
| NullPointerException | 如果指定的排序集或其任何元素為空 |
方法詳情
add
public boolean add(E e)
將指定元素插入此優(yōu)先級(jí)隊(duì)列。
指定者:
添加接口CollectionE
指定者:
添加接口QueueE
覆蓋:
添加類 AbstractQueueE
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| e | 要添加的元素 |
返回:
true(由 Collection#add 指定)
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| ClassCastException | 如果指定的元素不能根據(jù)優(yōu)先級(jí)隊(duì)列的順序與當(dāng)前在此優(yōu)先級(jí)隊(duì)列中的元素進(jìn)行比較 |
| NullPointerException | 如果指定元素為空 |
offer
public boolean offer(E e)
將指定元素插入此優(yōu)先級(jí)隊(duì)列。
指定者:
接口QueueE中的offer
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| e | 要添加的元素 |
返回:
true(由 Queue#offer 指定)
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| ClassCastException | 如果指定的元素不能根據(jù)優(yōu)先級(jí)隊(duì)列的順序與當(dāng)前在此優(yōu)先級(jí)隊(duì)列中的元素進(jìn)行比較 |
| NullPointerException | 如果指定元素為空 |
peek
public E peek()
從接口復(fù)制的描述:隊(duì)列
檢索但不刪除此隊(duì)列的頭部,如果此隊(duì)列為空,則返回 null。
指定者:
查看接口 QueueE
返回:
此隊(duì)列的頭部,如果此隊(duì)列為空,則返回 null
remove
public boolean remove(Object o)
從此隊(duì)列中移除指定元素的單個(gè)實(shí)例(如果存在)。 更正式地說,如果該隊(duì)列包含一個(gè)或多個(gè)這樣的元素,則刪除一個(gè)元素 e 使得 o.equals(e)。 當(dāng)且僅當(dāng)此隊(duì)列包含指定元素時(shí)(或等效地,如果此隊(duì)列因調(diào)用而更改)返回 true。
指定者:
在接口 CollectionE 中刪除
覆蓋:
在類 AbstractCollectionE 中刪除
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| o | 要從此隊(duì)列中刪除的元素(如果存在) |
返回:
如果此隊(duì)列因調(diào)用而更改,則為 true
contains
public boolean contains(Object o)
如果此隊(duì)列包含指定元素,則返回 true。 更正式地說,當(dāng)且僅當(dāng)此隊(duì)列包含至少一個(gè)元素 e 使得 o.equals(e) 時(shí)才返回 true。
指定者:
包含在接口 CollectionE 中
覆蓋:
包含在類 AbstractCollectionE 中
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| o | 要檢查此隊(duì)列中包含的對(duì)象 |
返回:
如果此隊(duì)列包含指定元素,則為 true
toArray
public Object[] toArray()
返回一個(gè)包含此隊(duì)列中所有元素的數(shù)組。 元素沒有特定的順序。
返回的數(shù)組將是“安全的”,因?yàn)樵撽?duì)列不維護(hù)對(duì)它的引用。 (換句話說,這個(gè)方法必須分配一個(gè)新數(shù)組)。 因此,調(diào)用者可以自由修改返回的數(shù)組。
此方法充當(dāng)基于數(shù)組和基于集合的 API 之間的橋梁。
指定者:
接口 CollectionE 中的 toArray
覆蓋:
AbstractCollectionE 類中的 toArray
返回:
包含此隊(duì)列中所有元素的數(shù)組
toArray
public
返回一個(gè)包含此隊(duì)列中所有元素的數(shù)組; 返回?cái)?shù)組的運(yùn)行時(shí)類型是指定數(shù)組的運(yùn)行時(shí)類型。 返回的數(shù)組元素沒有特定的順序。 如果隊(duì)列適合指定的數(shù)組,則在其中返回。 否則,將使用指定數(shù)組的運(yùn)行時(shí)類型和此隊(duì)列的大小分配一個(gè)新數(shù)組。
如果隊(duì)列適合指定的數(shù)組并有剩余空間(即,數(shù)組的元素多于隊(duì)列),則數(shù)組中緊跟集合末尾的元素設(shè)置為 null。
與 toArray() 方法一樣,此方法充當(dāng)基于數(shù)組的 API 和基于集合的 API 之間的橋梁。 此外,此方法允許對(duì)輸出數(shù)組的運(yùn)行時(shí)類型進(jìn)行精確控制,并且在某些情況下可用于節(jié)省分配成本。
假設(shè) x 是一個(gè)已知僅包含字符串的隊(duì)列。 以下代碼可用于將隊(duì)列轉(zhuǎn)儲(chǔ)到新分配的 String 數(shù)組中:
String[] y = x.toArray(new String[0]);
請(qǐng)注意,toArray(new Object[0]) 在功能上與 toArray() 相同。
指定者:
接口 CollectionE 中的 toArray
覆蓋:
AbstractCollectionE 類中的 toArray
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 包含集合的數(shù)組的運(yùn)行時(shí)類型 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| a | 存儲(chǔ)隊(duì)列元素的數(shù)組,如果它足夠大的話; 否則,將為此目的分配相同運(yùn)行時(shí)類型的新數(shù)組。 |
返回:
包含此隊(duì)列中所有元素的數(shù)組
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| ArrayStoreException | 如果指定數(shù)組的運(yùn)行時(shí)類型不是此隊(duì)列中每個(gè)元素的運(yùn)行時(shí)類型的超類型 |
| NullPointerException | 如果指定的數(shù)組為空 |
iterator
public IteratorE iterator()
返回此隊(duì)列中元素的迭代器。 迭代器不會(huì)以任何特定順序返回元素。
指定者:
接口 CollectionE 中的迭代器
指定者:
接口 IterableE 中的迭代器
指定者:
AbstractCollectionE 類中的迭代器
返回:
此隊(duì)列中元素的迭代器
size
public int size()
從接口復(fù)制的描述:集合
返回此集合中的元素?cái)?shù)。 如果此集合包含多個(gè) Integer.MAX_VALUE 元素,則返回 Integer.MAX_VALUE。
指定者:
接口 CollectionE 中的大小
指定者:
AbstractCollectionE 類中的大小
返回:
此集合中的元素?cái)?shù)
clear
public void clear()
從此優(yōu)先級(jí)隊(duì)列中刪除所有元素。 此調(diào)用返回后,隊(duì)列將為空。
指定者:
在界面 CollectionE 中清除
覆蓋:
在類 AbstractQueueE 中清除
poll
public E poll()
從接口復(fù)制的描述:隊(duì)列
檢索并刪除此隊(duì)列的頭部,如果此隊(duì)列為空,則返回 null。
指定者:
在接口 QueueE 中輪詢
返回:
此隊(duì)列的頭部,如果此隊(duì)列為空,則返回 null
comparator
public Comparator super E> comparator()
返回用于對(duì)該隊(duì)列中的元素進(jìn)行排序的比較器,如果此隊(duì)列根據(jù)其元素的 Comparable 進(jìn)行排序,則返回 null。
返回:
用于排序此隊(duì)列的比較器,如果此隊(duì)列根據(jù)其元素的自然順序排序,則為 null
spliterator
public final SpliteratorE spliterator()
在此隊(duì)列中的元素上創(chuàng)建一個(gè)后期綁定和快速失敗的拆分器。
Spliterator 報(bào)告 Spliterator#SIZED、Spliterator#SUBSIZED 和 Spliterator#NONNULL。 覆蓋實(shí)現(xiàn)應(yīng)記錄附加特征值的報(bào)告。
指定者:
接口 CollectionE 中的分離器
指定者:
接口 IterableE 中的分離器
返回:
在此隊(duì)列中的元素上的 Spliterator
當(dāng)前名稱:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSPriorityQueue
文章轉(zhuǎn)載:http://www.5511xx.com/article/djjhiji.html


咨詢
建站咨詢
