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
作業之外,佇列還提供額外的插入、擷取和檢查作業。 這兩種方法都有兩種形式:一種會在作業失敗時擲回例外狀況,另一種方法會根據作業) 傳回特殊值 (null
或 false
。 插入作業的後者形式是特別設計來搭配容量限制 Queue
實作使用;在大部分的實作中,插入作業無法失敗。
<table class=“striped”>標題 Queue 方法</標題>< thead<>tr><td></td<>th scope=“col” style=“font-weight:normal; font-style:italic”>Throws exception</th><scope=“col” style=“font-weight:normal; font-style:italic”>Returns special value</<>th/tr<>/thead<>tbody<>tr th<>><scope=“row”>Insert</th><td/td><>#offer(Object) offer(e)
</<>td<>#add(Object) add(e)
/tr<>th><scope=“row”>Remove<></th td<>#remove() remove()
/>><#poll() poll()
<td td/td<>/tr tr<<>>th scope=“row”>Check</th>#element() element()
<>< td/td/td><><#peek() peek()
<> td/tr<>/tbody></table>
佇列通常不一定以 FIFO 排序元素, (先出先出) 。 例外狀況包括優先順序佇列,這些佇列會根據提供的比較子或元素的自然順序來排序元素,而 LIFO 佇列會 (或堆疊) 排序元素 LIFO (先出) 。 無論使用何種排序,<佇列的 em>head</em> 都是呼叫 或 #poll()
移除的元素#remove()
。 在 FIFO 佇列中,所有新元素都會插入 <佇列的 em>tail</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 中新增。
此頁面的部分是根據 原始碼專案所建立和共用的工作進行修改,並根據 中所述的詞彙使用。
屬性
Handle |
取得基礎 Android 物件的 JNI 值。 (繼承來源 IJavaObject) |
IsEmpty |
如果不包含任何專案,則 |
JniIdentityHashCode |
傳回包裝實例的 |
JniManagedPeerState |
受控對等的狀態。 (繼承來源 IJavaPeerable) |
JniPeerMembers |
成員存取和調用支援。 (繼承來源 IJavaPeerable) |
PeerReference |
傳 JniObjectReference 回已包裝 Java 物件實例的 。 (繼承來源 IJavaPeerable) |
方法
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) |
明確介面實作
IIterable.Spliterator() |
|
擴充方法
JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
JavaCast<TResult>(IJavaObject) |
在處理之前,專為保存元素而設計的集合。 |
GetJniTypeName(IJavaPeerable) |
在處理之前,專為保存元素而設計的集合。 |
ToEnumerable(IIterable) |
在處理之前,專為保存元素而設計的集合。 |
ToEnumerable<T>(IIterable) |
在處理之前,專為保存元素而設計的集合。 |