IQueue 介面

定義

一個設計用於保存元素、待處理的收藏。

[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 實作通常不會定義基於元素的方法版本 equalshashCode 而是繼承了 Object類別 的身份式版本,因為元素基礎的相等性對於具有相同元素但排序性質不同的佇列來說,並不總是定義得很好。

已在1.5中新增。

java.util.QueueJava 檔。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

屬性

名稱 Description
Handle

取得底層 Android 物件的 JNI 值。

(繼承來源 IJavaObject)
IsEmpty

若此處Collection不包含任何元素,則回傳true

(繼承來源 ICollection)
JniIdentityHashCode

回傳包裹實例的 java.lang.System.identityHashCode() 值。

(繼承來源 IJavaPeerable)
JniManagedPeerState

管理貴族的狀況。

(繼承來源 IJavaPeerable)
JniObjectReferenceControlBlock

一個設計用於保存元素、待處理的收藏。

(繼承來源 IJavaPeerable)
JniPeerMembers

成員存取與召喚支援。

(繼承來源 IJavaPeerable)
PeerReference

回傳JniObjectReference包裹後的 Java 物件實例。

(繼承來源 IJavaPeerable)

方法

名稱 Description
Add(Object)

若可立即插入指定元素且不違反容量限制,則插入該佇列;成功時返回true,若目前無空間則拋棄 。IllegalStateException

AddAll(ICollection)

將指定集合中的所有元素加入此集合(可選操作)。

(繼承來源 ICollection)
Clear()

移除此集合中的所有元素(可選操作)。

(繼承來源 ICollection)
Contains(Object)

若此集合包含指定元素,則回傳 true

(繼承來源 ICollection)
ContainsAll(ICollection)

若此集合包含指定集合中的所有元素,則回傳 true

(繼承來源 ICollection)
Disposed()

當實例被處理後才被召喚。

(繼承來源 IJavaPeerable)
DisposeUnlessReferenced()

如果沒有未解決的參考資料,則 Dispose()呼叫;否則,則不做任何事。

(繼承來源 IJavaPeerable)
Element()

擷取但不移除此隊列的首端。

Equals(Object)

比較指定物件與此集合以求相等。

(繼承來源 ICollection)
Finalized()

當實例完成後才會被通知。

(繼承來源 IJavaPeerable)
ForEach(IConsumer)

對每個元素 Iterable 執行指定動作,直到所有元素都處理完畢或動作拋出異常。

(繼承來源 IIterable)
GetHashCode()

回傳此集合的雜湊碼值。

(繼承來源 ICollection)
Iterator()

回傳該集合中元素的迭代器。

(繼承來源 ICollection)
Offer(Object)

若能立即插入指定元素且不違反容量限制,則會將指定元素插入佇列。

Peek()

擷取但不移除該佇列的首部,若該佇列為空則返回 null

Poll()

擷取並移除此佇列的首,或若佇列為空則返回 null

Remove()

擷取並移除此佇列的頭部。

Remove(Object)

若該集合存在,則移除該集合中單一的實例(可選操作)。

(繼承來源 ICollection)
RemoveAll(ICollection)

移除該集合中所有同時包含於指定集合中的元素(可選操作)。

(繼承來源 ICollection)
RemoveIf(IPredicate)

移除該集合中所有滿足該謂詞的元素。

(繼承來源 ICollection)
RetainAll(ICollection)

只保留該集合中包含於指定集合中的元素(可選操作)。

(繼承來源 ICollection)
SetJniIdentityHashCode(Int32)

將回傳的值設為 JniIdentityHashCode

(繼承來源 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

一個設計用於保存元素、待處理的收藏。

(繼承來源 IJavaPeerable)
SetPeerReference(JniObjectReference)

將回傳的值設為 PeerReference

(繼承來源 IJavaPeerable)
Size()

回傳此集合中的元素數量。

(繼承來源 ICollection)
Spliterator()

在由此Spliterator描述的元素上建立 a Iterable

(繼承來源 IIterable)
ToArray()

回傳包含此集合中所有元素的陣列。

(繼承來源 ICollection)
ToArray(IIntFunction)

回傳包含此集合中所有元素的陣列,並使用所提供的 generator 函式來分配回傳的陣列。

(繼承來源 ICollection)
ToArray(Object[])

回傳包含此集合中所有元素的陣列;回傳陣列的執行時型別即為指定陣列的類型。

(繼承來源 ICollection)
UnregisterFromRuntime()

取消註冊此實例,讓執行時不會在未來 Java.Interop.JniRuntime+JniValueManager.PeekValue 的呼叫中回傳該實例。

(繼承來源 IJavaPeerable)

明確介面實作

名稱 Description
IIterable.Spliterator()

在此集合中建立 元素 Spliterator

(繼承來源 ICollection)

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時間檢查的類型轉換。

JavaCast<TResult>(IJavaObject)

一個設計用於保存元素、待處理的收藏。

ToEnumerable(IIterable)

一個設計用於保存元素、待處理的收藏。

ToEnumerable<T>(IIterable)

一個設計用於保存元素、待處理的收藏。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於