IDeque 介面
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
線性集合,支援在兩端插入和移除專案。
[Android.Runtime.Register("java/util/Deque", "", "Java.Util.IDequeInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public interface IDeque : IDisposable, Java.Interop.IJavaPeerable, Java.Util.IQueue
[<Android.Runtime.Register("java/util/Deque", "", "Java.Util.IDequeInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type IDeque = interface
interface IQueue
interface ICollection
interface IIterable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 衍生
- 屬性
- 實作
備註
線性集合,支援在兩端插入和移除專案。 名稱 deque 是 「double ended queue」 的簡短名稱,通常發音為 「deck」。 大部分 Deque
的實作不會針對它們所包含的元素數目設定固定限制,但此介面支援容量限制的 deque,以及沒有固定大小限制的專案。
這個介面會定義方法,以存取 deque 兩端的專案。 提供方法來插入、移除及檢查 專案。 這兩種方法都有兩種形式:一種在作業失敗時擲回例外狀況,另一種方法會根據作業) 傳回特殊值 (null
或 false
。 插入作業的後者形式是特別設計來搭配容量限制 Deque
實作使用;在大部分的實作中,插入作業無法失敗。
下表摘要說明上述的十二種方法:
<table class=「striped」 > 標題 Deque methods < /標題 >< thead >< tr <> td rowspan=「2」 >< /td >< th scope=「col」 colspan=「2」 > First Element 標題Summary (Head) < /th <> scope=「col」 colspan=「2」 > Last Element (Tail) < /th >< /tr <> th >< scope=「col」 style=「font-weight:normal; font-style:italic」 > Throws exception/ <><th > scope=「col」 style=「font-weight:normal; font-style:italic」 > Special value/th >< th scope=「col」 style=「font-weight:normal; font-style:italic」 > Throws exception < /th <> scope=「col」 style=「font-weight:normal; font-style:italic」 > Special value << /th/tr/thead <> tbody >< tr ><<> th scope=「row」 > Insert < /th <><> td/td <>#addFirst(Object) addFirst(e)
<><td >#offerFirst(Object) offerFirst(e)
< /td >< td/td >#addLast(Object) addLast(e)
< td/td >><#offerLast(Object) offerLast(e)
><< /tr th >><< scope=「row」 > Remove < /th <> td <>#removeFirst() removeFirst()
/ >><<#pollFirst() pollFirst()
td td/ <>>#removeLast() removeLast()
< td td/td td ><#pollLast() pollLast()
>< /td <> /tr >< tr >< th scope=「row」 > Examine < /th <> td #getFirst() getFirst()
<> /td td td ><>#peekFirst() peekFirst()
</td >< td/td #getLast() getLast()
<> td >><#peekLast() peekLast()
< /td >< /tr >< /tbody >< /table>
這個介面會 Queue
擴充 介面。 當 deque 當做佇列使用時,FIFO (First-In-First-Out) 行為結果。 專案會新增至 deque 結尾,並從開頭移除。 繼承自 Queue
介面的方法與下表所指示的方法精確相等 Deque
:
<table class=「striped」 > 標題 Queue and Deque methods < /標題 >< thead >< tr >< th scope=「col」 >Queue
Method/th <> scope=「col」 > Equivalent Deque
Method << /th >< /tr <> /thead <> tbody ><<> tr th scope=「row」 #add(Object) add(e)
>< /th >< td >#addLast(Object) addLast(e)
><< /tr >><><<th scope=「row」 >#offer(Object) offer(e)
</th > td/td >#offerLast(Object) offerLast(e)
<<> /tr >< th >< scope=「row」 <#remove() remove()
> /th <> td/td >#removeFirst() removeFirst()
<>< /tr tr ><>< th scope=「row」 #poll() poll()
<> /th td ><#pollFirst() pollFirst()
/td <> /tr <> tr <> th >< scope=「row」 ><#element() element()
/th <> td <>#getFirst() getFirst()
/td >< / >< tr th <> scope=「row」 ><#peek() peek()
/th <>< td ><#peekFirst() peekFirst()
/td >< /tr >< /tbody >< /table>
Deque 也可以當做 LIFO (Last-In-First-Out) 堆疊使用。 此介面應該優先使用於舊版 Stack
類別。 當 deque 當做堆疊使用時,專案會從 deque 的開頭推送和彈出。 Stack 方法相當於 Deque
下表所示的方法:
<table class=「striped」 > 標題 Stack and Deque methods < /標題 <> thead >< tr <> th scope=「col」 > Stack Method/th <> scope=「col」 > Equivalent Deque
Method << /th >< /th/tr <> /thead <> tbody <> tr <> th scope=「row」 #push(Object) push(e)
>< /th >< td >#addFirst(Object) addFirst(e)
><< /tr tr >><><<th scope=「row」 >#pop() pop()
</th > td/td ><<>#removeFirst() removeFirst()
/tr >< th >< scope=「row」 <#peek() peek()
> /th >< td/td <><>#getFirst() getFirst()
/tr >< /tbody <> /table <>
請注意, #peek peek
當 deque 當做佇列或堆疊使用 deque 時,方法會同樣正常運作;不論是哪一種情況,都是從 deque 的開頭繪製元素。
這個介面提供兩種方法來移除內部元素和 #removeFirstOccurrence removeFirstOccurrence
#removeLastOccurrence removeLastOccurrence
。
List
不同于 介面,此介面不支援索引存取元素。
雖然 Deque
實作並非嚴格要求禁止插入 Null 元素,但強烈建議這麼做。 Deque
強烈建議任何允許 Null 元素實作的使用者不要利用插入 Null 的能力。 null
這是因為 會由各種方法用來做為特殊傳回值,以表示 deque 是空的。
Deque
實作通常不會定義 和 hashCode
方法的專案 equals
型版本,而是從 類別 Object
繼承以身分識別為基礎的版本。
已在 1.6 中新增。
此頁面的部分是根據所建立和共用的工作進行修改,並根據 2.5 屬性授權中所述的詞彙來使用。
屬性
First |
擷取但不會移除這個 deque 的第一個專案。 |
Handle |
取得基礎 Android 物件的 JNI 值。 (繼承來源 IJavaObject) |
IsEmpty |
如果不包含 |
JniIdentityHashCode |
傳回已包裝實例的 值 |
JniManagedPeerState |
Managed 對等的狀態。 (繼承來源 IJavaPeerable) |
JniPeerMembers |
成員存取和調用支援。 (繼承來源 IJavaPeerable) |
Last |
擷取,但不會移除這個 deque 的最後一個專案。 |
PeerReference |
傳 JniObjectReference 回已包裝 JAVA 物件實例的 。 (繼承來源 IJavaPeerable) |
方法
Add(Object) |
將指定的專案插入這個 deque 所代表的佇列 (,換句話說,如果可以立即執行此 deque) ,而不違反容量限制,則 |
AddAll(ICollection) |
將指定集合中的所有專案加入至這個集合, (選擇性作業) 。 (繼承來源 ICollection) |
AddFirst(Object) |
如果可以立即執行此 deque 而不違反容量限制,請在此 deque 前面插入指定的元素,如果目前沒有可用空間,則會擲回 |
AddLast(Object) |
如果可以立即執行此 deque 而不違反容量限制,請在此 deque 結尾插入指定的專案,如果目前沒有可用空間,則會擲回 |
Clear() |
從這個集合中移除所有專案, (選擇性作業) 。 (繼承來源 ICollection) |
Contains(Object) |
如果這個 deque 包含指定的專案,則傳 |
ContainsAll(ICollection) |
|
DescendingIterator() |
以反向循序順序傳回這個 deque 中元素的反覆運算器。 |
Disposed() |
處置實例時呼叫。 (繼承來源 IJavaPeerable) |
DisposeUnlessReferenced() |
如果這個實例沒有未完成的參考,則呼叫 |
Element() |
擷取但不會移除這個 deque 所代表之佇列的前端 (,換句話說,這個 deque 的第一個專案) 。 |
Equals(Object) |
比較指定的 物件與這個集合是否相等。 (繼承來源 ICollection) |
Finalized() |
實例完成時呼叫。 (繼承來源 IJavaPeerable) |
ForEach(IConsumer) |
針對 的每個專案執行指定的動作,直到處理所有專案 |
GetHashCode() |
傳回這個集合的雜湊碼值。 (繼承來源 ICollection) |
Iterator() |
依適當順序傳回這個 deque 中元素的反覆運算器。 |
Offer(Object) |
將指定的元素插入這個 deque 所代表的佇列 (,換句話說,如果可以立即執行此 deque) ,而不違反容量限制,則 |
OfferFirst(Object) |
除非違反容量限制,否則會將指定的元素插入這個 deque 的前面。 |
OfferLast(Object) |
除非違反容量限制,否則會在這個 deque 結尾插入指定的專案。 |
Peek() |
擷取,但不會移除這個 deque 所代表之佇列的前端 (,換句話說,這個 deque 的第一個專案) ,如果 deque 是空的,則會傳 |
PeekFirst() |
擷取但不會移除這個 deque 的第一個專案,如果這個 deque 是空的,則傳回 |
PeekLast() |
擷取但不會移除這個 deque 的最後一個專案,如果這個 deque 是空的,則傳回 |
Poll() |
擷取並移除這個 deque 所代表之佇列的前端 (,也就是這個 deque) 的第一個專案,如果 deque 是空的,則會傳 |
PollFirst() |
擷取並移除這個 deque 的第一個專案,如果這個 deque 是空的,則傳 |
PollLast() |
擷取並移除這個 deque 的最後一個專案,如果這個 deque 是空的,則傳 |
Pop() |
從這個 deque 所代表的堆疊中快顯專案。 |
Push(Object) |
將元素推送至這個 deque 所代表的堆疊 (,換句話說,如果可以立即執行此 deque) ,則不違反容量限制,如果目前沒有可用空間,則會擲回 |
Remove() |
擷取並移除這個 deque 所代表之佇列的前端 (,換句話說,這個 deque 的第一個專案) 。 |
Remove(Object) |
從這個 deque 中移除第一個出現的指定專案。 |
RemoveAll(ICollection) |
移除同時包含在指定集合中的所有專案, (選擇性作業) 。 (繼承來源 ICollection) |
RemoveFirst() |
擷取並移除這個 deque 的第一個專案。 |
RemoveFirstOccurrence(Object) |
從這個 deque 中移除第一個出現的指定專案。 |
RemoveIf(IPredicate) |
移除此集合中滿足指定述詞的所有專案。 (繼承來源 ICollection) |
RemoveLast() |
擷取並移除這個 deque 的最後一個專案。 |
RemoveLastOccurrence(Object) |
從這個 deque 中移除最後一個出現的指定專案。 |
RetainAll(ICollection) |
只保留這個集合中包含在指定集合中的專案, (選擇性作業) 。 (繼承來源 ICollection) |
SetJniIdentityHashCode(Int32) |
設定 所 |
SetJniManagedPeerState(JniManagedPeerStates) |
線性集合,支援在兩端插入和移除專案。 (繼承來源 IJavaPeerable) |
SetPeerReference(JniObjectReference) |
設定 所 |
Size() |
傳回這個 deque 中的專案數目。 |
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) |
線性集合,支援在兩端插入和移除專案。 |