PriorityQueue 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
基於優先權堆積的無界優先權佇列。
[Android.Runtime.Register("java/util/PriorityQueue", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public class PriorityQueue : Java.Util.AbstractQueue, IDisposable, Java.IO.ISerializable
[<Android.Runtime.Register("java/util/PriorityQueue", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type PriorityQueue = class
inherit AbstractQueue
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 繼承
- 屬性
- 實作
備註
基於優先權堆積的無界優先權佇列。 優先佇列的元素依其可比自然順序排序,或依佇列建構時提供的排序 Comparator 排序,視所使用的建構子而定。 優先佇列不允許 null 元素。 依賴自然排序的優先佇列也不允許插入不可比較的物件(若插入,可能會導致 ClassCastException)。
<此佇列的 em>頭</em> 是<相對於指定排序的最小> em</em> 元素。 如果多個元素因最低值而平手,頭就是其中之一——平手會被任意打破。 佇列的擷取操作 poll, remove, peek, 存取 element 佇列頂端的元素。
優先佇列是無界的,但其內部 容量 控制用於儲存佇列元素的陣列大小。 它總是至少和佇列大小一樣大。 隨著元素加入優先佇列,其容量會自動增加。 成長政策的細節未被明確說明。
這個類別及其迭代器實作了 和 介面中所有 <em>可選</em> 方法Collection。Iterator 方法中#iterator()提供的迭代器與方法#spliterator()中提供的分割器,皆保證<><>能以任意順序遍歷優先佇列元素。 如果你需要有序遍歷,可以考慮使用 Arrays.sort(pq.toArray())。
<強>請注意,此實作並非同步。</strong> 如果有多個執行緒修改佇列,則不應同時存取同一 PriorityQueue 實例。 相反地,使用執行緒安全的 java.util.concurrent.PriorityBlockingQueue 類別。
實作說明:此實作為排隊與解隊方法offer提供 O(log(n)) 時間(, poll, remove() , 及add);與remove(Object)方法為contains(Object)線性時間;檢索方法為常數時間(peek, element, 與size)。
此類別是 Java 集合框架的成員。
已在1.5中新增。
Java 文件 java.util.PriorityQueue。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
建構函式
| 名稱 | Description |
|---|---|
| PriorityQueue() |
創造 |
| PriorityQueue(ICollection) |
建立包含指定集合中元素的 a |
| PriorityQueue(IComparator) |
建立預設初始容量的 , |
| PriorityQueue(Int32, IComparator) |
創造具有指定初始容量的 , |
| PriorityQueue(Int32) |
創造具有指定初始容量的 , |
| PriorityQueue(IntPtr, JniHandleOwnership) |
用於建立 JNI 物件受管理表示的建構器;由執行時呼叫。 |
| PriorityQueue(ISortedSet) |
建立包含指定排序集合中元素的 a |
| PriorityQueue(PriorityQueue) |
建立包含指定優先佇列中元素的 a |
屬性
| 名稱 | Description |
|---|---|
| Class |
回傳此 |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Object) |
| IsEmpty |
待補充 (繼承來源 AbstractCollection) |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
基於優先權堆積的無界優先權佇列。 (繼承來源 JavaObject) |
| JniPeerMembers |
基於優先權堆積的無界優先權佇列。 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| ThresholdClass |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 |
| ThresholdType |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 |
方法
| 名稱 | Description |
|---|---|
| Add(Object) |
待補充 (繼承來源 AbstractCollection) |
| AddAll(ICollection) |
待補充 (繼承來源 AbstractCollection) |
| Clear() |
待補充 (繼承來源 AbstractCollection) |
| Clone() |
建立並回傳此物件的副本。 (繼承來源 Object) |
| Comparator() |
回傳用於排序此佇列元素的比較器,或 |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
基於優先權堆積的無界優先權佇列。 (繼承來源 JavaObject) |
| Contains(Object) |
待補充 (繼承來源 AbstractCollection) |
| ContainsAll(ICollection) |
待補充 (繼承來源 AbstractCollection) |
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
基於優先權堆積的無界優先權佇列。 (繼承來源 JavaObject) |
| Element() |
擷取但不移除此隊列的首端。 (繼承來源 AbstractQueue) |
| Equals(Object) |
基於優先權堆積的無界優先權佇列。 (繼承來源 JavaObject) |
| Equals(Object) |
表示是否有其他物體「等同」於此物。 (繼承來源 Object) |
| ForEach(IConsumer) |
基於優先權堆積的無界優先權佇列。 |
| GetHashCode() |
回傳物件的雜湊碼值。 (繼承來源 Object) |
| Iterator() |
回傳對佇列中元素的迭代器。 |
| JavaFinalize() |
已淘汰.
當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。 (繼承來源 Object) |
| Notify() |
喚醒一個正在該物件監視器上等待的執行緒。 (繼承來源 Object) |
| NotifyAll() |
喚醒所有等待該物件監視器的執行緒。 (繼承來源 Object) |
| Offer(Object) |
將指定的元素插入此優先佇列。 |
| Peek() |
取得但不移除排隊首位。 |
| Poll() |
他會取得並移除隊伍的首位。 |
| Remove() |
擷取並移除此佇列的頭部。 (繼承來源 AbstractQueue) |
| Remove(Object) |
待補充 (繼承來源 AbstractCollection) |
| RemoveAll(ICollection) |
待補充 (繼承來源 AbstractCollection) |
| RemoveIf(IPredicate) |
基於優先權堆積的無界優先權佇列。 |
| RetainAll(ICollection) |
待補充 (繼承來源 AbstractCollection) |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
基於優先權堆積的無界優先權佇列。 (繼承來源 JavaObject) |
| Size() |
會得到優先權佇列的大小。 |
| Spliterator() |
會在這個佇列中的元素上建立 <em late-binding>/em <> 和 em<fail-fast>/em<> |
| ToArray() |
待補充 (繼承來源 AbstractCollection) |
| ToArray(Object[]) |
待補充 (繼承來源 AbstractCollection) |
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToString() |
回傳物件的字串表示。 (繼承來源 Object) |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| Wait() |
導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。 (繼承來源 Object) |
| Wait(Int64, Int32) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| Wait(Int64) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
基於優先權堆積的無界優先權佇列。 (繼承來源 JavaObject) |
| IJavaPeerable.Finalized() |
基於優先權堆積的無界優先權佇列。 (繼承來源 JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
基於優先權堆積的無界優先權佇列。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
基於優先權堆積的無界優先權佇列。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
基於優先權堆積的無界優先權佇列。 (繼承來源 JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
基於優先權堆積的無界優先權佇列。 (繼承來源 JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
基於優先權堆積的無界優先權佇列。 |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
基於優先權堆積的無界優先權佇列。 |
| ToEnumerable(IIterable) |
回傳 和 IEnumerable ,會對 Java IIterable進行迭代,允許 |
| ToEnumerable<T>(IIterable) |
回傳 和 IEnumerable<T> ,該 在 Java IIterable上迭代,將每個元素 集結為 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |