IQueue 介面
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
一個設計用於保存元素、待處理的收藏。
[Android.Runtime.Register("java/util/Queue", "", "Java.Util.IQueueInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public interface IQueue : IDisposable, Java.Interop.IJavaPeerable, Java.Util.ICollection
[<Android.Runtime.Register("java/util/Queue", "", "Java.Util.IQueueInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type IQueue = interface
interface ICollection
interface IIterable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 衍生
- 屬性
- 實作
備註
一個設計用於保存元素、待處理的收藏。 除了基本 Collection 操作外,佇列還提供額外的插入、提取及檢查操作。 這些方法各有兩種形式:一種在操作失敗時拋出例外,另一種則回傳特殊值(視操作而定nullfalse或 )。 插入操作的後者是專門為容量受限 Queue 的實作設計;在大多數實作中,插入操作不會失敗。
<table class=“striped”caption><> 隊列方法<摘要/caption><thead><tr><td></td><th scope=“col” style=“font-weight:normal; font-style:italic”>Throws exception</th><th scope=“col” style=“font-weight:normal;font-style:italic”>回傳特殊值</th></tr></thead><tbody><tr><th scope=“row”>Insert</th><td>#add(Object) add(e)</td><td>#offer(Object) offer(e)</td></tr><tr th><scope=“row”> 移除</th><td>#remove() remove()</td><td>#poll() poll()</td></tr><tr th><scope=“row”>Examine</th><td>#element() element()</td><td>#peek() peek()</td></tr></tbody></table>
佇列通常(但不一定)以先入先出(FIFO)方式排序元素。 例外包括優先佇列,依據所提供的比較器或元素的自然排序來排序元素,以及 LIFO 隊列(或堆疊),將元素排序為 LIFO(後進先出)。 無論使用何種排序, <隊列的 em>頭</em> 都是會被呼叫 或 #remove()#poll()移除的元素。 在 FIFO 隊列中,所有新元素都會插入佇 <列的 em>尾<端/em> 位置。 其他類型的佇列可能使用不同的排列規則。 每個 Queue 實作都必須指定其排序屬性。
#offer offer此方法若可能,會插入元素,否則返回 false。 這與方法 java.util.Collection#add Collection.add 不同,後者只能透過拋出未檢查的例外來失敗加入元素。 此 offer 方法設計用於故障是正常而非特殊的情況,例如在固定容量(或 ”有界且)排隊。
和 #remove() 方法會#poll()移除並回傳佇列的頭部。 究竟從佇列中移除哪個元素取決於佇列的排序政策,而排序政策因實作而異。
remove()和 poll() 方法的行為僅在佇列為空時有所不同:remove()方法拋出例外,而poll()方法回傳 null。
和#element()方法回#peek()傳但不移除佇列的首位。
介面 Queue 未定義阻塞 佇列方法,而阻塞排隊方法在並行程式設計中很常見。 這些方法會在介面中定義 java.util.concurrent.BlockingQueue ,等待元素出現或空間可用,介面會延伸此介面。
Queue 實作通常不允許插入 null 元素,儘管有些實作,如 LinkedList,並不禁止插入 null元素。 即使在允許的實作中, null 也不應插入 Queue,因為 null 這也是方法的特殊回傳值 poll ,表示佇列中沒有元素。
Queue 實作通常不會定義基於元素的方法版本 equals , hashCode 而是繼承了 Object類別 的身份式版本,因為元素基礎的相等性對於具有相同元素但排序性質不同的佇列來說,並不總是定義得很好。
已在1.5中新增。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
屬性
| 名稱 | Description |
|---|---|
| Handle |
取得底層 Android 物件的 JNI 值。 (繼承來源 IJavaObject) |
| IsEmpty |
若此處 |
| JniIdentityHashCode |
回傳包裹實例的 |
| JniManagedPeerState |
管理貴族的狀況。 (繼承來源 IJavaPeerable) |
| JniObjectReferenceControlBlock |
一個設計用於保存元素、待處理的收藏。 (繼承來源 IJavaPeerable) |
| JniPeerMembers |
成員存取與召喚支援。 (繼承來源 IJavaPeerable) |
| PeerReference |
回傳JniObjectReference包裹後的 Java 物件實例。 (繼承來源 IJavaPeerable) |
方法
| 名稱 | Description |
|---|---|
| Add(Object) |
若可立即插入指定元素且不違反容量限制,則插入該佇列;成功時返回 |
| AddAll(ICollection) |
將指定集合中的所有元素加入此集合(可選操作)。 (繼承來源 ICollection) |
| Clear() |
移除此集合中的所有元素(可選操作)。 (繼承來源 ICollection) |
| Contains(Object) |
若此集合包含指定元素,則回傳 |
| ContainsAll(ICollection) |
若此集合包含指定集合中的所有元素,則回傳 |
| Disposed() |
當實例被處理後才被召喚。 (繼承來源 IJavaPeerable) |
| DisposeUnlessReferenced() |
如果沒有未解決的參考資料,則 |
| Element() |
擷取但不移除此隊列的首端。 |
| Equals(Object) |
比較指定物件與此集合以求相等。 (繼承來源 ICollection) |
| Finalized() |
當實例完成後才會被通知。 (繼承來源 IJavaPeerable) |
| ForEach(IConsumer) |
對每個元素 |
| GetHashCode() |
回傳此集合的雜湊碼值。 (繼承來源 ICollection) |
| Iterator() |
回傳該集合中元素的迭代器。 (繼承來源 ICollection) |
| Offer(Object) |
若能立即插入指定元素且不違反容量限制,則會將指定元素插入佇列。 |
| Peek() |
擷取但不移除該佇列的首部,若該佇列為空則返回 |
| Poll() |
擷取並移除此佇列的首,或若佇列為空則返回 |
| Remove() |
擷取並移除此佇列的頭部。 |
| Remove(Object) |
若該集合存在,則移除該集合中單一的實例(可選操作)。 (繼承來源 ICollection) |
| RemoveAll(ICollection) |
移除該集合中所有同時包含於指定集合中的元素(可選操作)。 (繼承來源 ICollection) |
| RemoveIf(IPredicate) |
移除該集合中所有滿足該謂詞的元素。 (繼承來源 ICollection) |
| RetainAll(ICollection) |
只保留該集合中包含於指定集合中的元素(可選操作)。 (繼承來源 ICollection) |
| SetJniIdentityHashCode(Int32) |
將回傳的值設為 |
| SetJniManagedPeerState(JniManagedPeerStates) |
一個設計用於保存元素、待處理的收藏。 (繼承來源 IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
將回傳的值設為 |
| Size() |
回傳此集合中的元素數量。 (繼承來源 ICollection) |
| Spliterator() |
在由此 |
| ToArray() |
回傳包含此集合中所有元素的陣列。 (繼承來源 ICollection) |
| ToArray(IIntFunction) |
回傳包含此集合中所有元素的陣列,並使用所提供的 |
| ToArray(Object[]) |
回傳包含此集合中所有元素的陣列;回傳陣列的執行時型別即為指定陣列的類型。 (繼承來源 ICollection) |
| UnregisterFromRuntime() |
取消註冊此實例,讓執行時不會在未來 Java.Interop.JniRuntime+JniValueManager.PeekValue 的呼叫中回傳該實例。 (繼承來源 IJavaPeerable) |
明確介面實作
| 名稱 | Description |
|---|---|
| IIterable.Spliterator() |
在此集合中建立 元素 |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
| JavaCast<TResult>(IJavaObject) |
一個設計用於保存元素、待處理的收藏。 |
| ToEnumerable(IIterable) |
一個設計用於保存元素、待處理的收藏。 |
| ToEnumerable<T>(IIterable) |
一個設計用於保存元素、待處理的收藏。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |