Share via


IDeque 介面

定義

線性集合,支援在兩端插入和移除專案。

[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 兩端的專案。 提供方法來插入、移除及檢查 專案。 這兩種方法都有兩種形式:一種在作業失敗時擲回例外狀況,另一種方法會根據作業) 傳回特殊值 (nullfalse 。 插入作業的後者形式是特別設計來搭配容量限制 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 中新增。

java.util.Deque JAVA 檔。

此頁面的部分是根據所建立和共用的工作進行修改,並根據 2.5 屬性授權中所述的詞彙來使用。

屬性

First

擷取但不會移除這個 deque 的第一個專案。

Handle

取得基礎 Android 物件的 JNI 值。

(繼承來源 IJavaObject)
IsEmpty

如果不包含 Collection 任何專案,則傳回 。

(繼承來源 ICollection)
JniIdentityHashCode

傳回已包裝實例的 值 java.lang.System.identityHashCode()

(繼承來源 IJavaPeerable)
JniManagedPeerState

Managed 對等的狀態。

(繼承來源 IJavaPeerable)
JniPeerMembers

成員存取和調用支援。

(繼承來源 IJavaPeerable)
Last

擷取,但不會移除這個 deque 的最後一個專案。

PeerReference

JniObjectReference 回已包裝 JAVA 物件實例的 。

(繼承來源 IJavaPeerable)

方法

Add(Object)

將指定的專案插入這個 deque 所代表的佇列 (,換句話說,如果可以立即執行此 deque) ,而不違反容量限制,則 true 傳回成功時,如果目前沒有可用空間,則會擲 IllegalStateException 回 。

AddAll(ICollection)

將指定集合中的所有專案加入至這個集合, (選擇性作業) 。

(繼承來源 ICollection)
AddFirst(Object)

如果可以立即執行此 deque 而不違反容量限制,請在此 deque 前面插入指定的元素,如果目前沒有可用空間,則會擲回 IllegalStateException

AddLast(Object)

如果可以立即執行此 deque 而不違反容量限制,請在此 deque 結尾插入指定的專案,如果目前沒有可用空間,則會擲回 IllegalStateException

Clear()

從這個集合中移除所有專案, (選擇性作業) 。

(繼承來源 ICollection)
Contains(Object)

如果這個 deque 包含指定的專案,則傳 true 回 。

ContainsAll(ICollection)

true如果這個集合包含指定集合中的所有專案,則傳回 。

(繼承來源 ICollection)
DescendingIterator()

以反向循序順序傳回這個 deque 中元素的反覆運算器。

Disposed()

處置實例時呼叫。

(繼承來源 IJavaPeerable)
DisposeUnlessReferenced()

如果這個實例沒有未完成的參考,則呼叫 Dispose() ,否則不會執行任何動作。

(繼承來源 IJavaPeerable)
Element()

擷取但不會移除這個 deque 所代表之佇列的前端 (,換句話說,這個 deque 的第一個專案) 。

Equals(Object)

比較指定的 物件與這個集合是否相等。

(繼承來源 ICollection)
Finalized()

實例完成時呼叫。

(繼承來源 IJavaPeerable)
ForEach(IConsumer)

針對 的每個專案執行指定的動作,直到處理所有專案 Iterable 或動作擲回例外狀況為止。

(繼承來源 IIterable)
GetHashCode()

傳回這個集合的雜湊碼值。

(繼承來源 ICollection)
Iterator()

依適當順序傳回這個 deque 中元素的反覆運算器。

Offer(Object)

將指定的元素插入這個 deque 所代表的佇列 (,換句話說,如果可以立即執行此 deque) ,而不違反容量限制,則 true 傳回成功時,如果 false 目前沒有可用空間,則為 。

OfferFirst(Object)

除非違反容量限制,否則會將指定的元素插入這個 deque 的前面。

OfferLast(Object)

除非違反容量限制,否則會在這個 deque 結尾插入指定的專案。

Peek()

擷取,但不會移除這個 deque 所代表之佇列的前端 (,換句話說,這個 deque 的第一個專案) ,如果 deque 是空的,則會傳 null 回 。

PeekFirst()

擷取但不會移除這個 deque 的第一個專案,如果這個 deque 是空的,則傳回 null

PeekLast()

擷取但不會移除這個 deque 的最後一個專案,如果這個 deque 是空的,則傳回 null

Poll()

擷取並移除這個 deque 所代表之佇列的前端 (,也就是這個 deque) 的第一個專案,如果 deque 是空的,則會傳 null 回 。

PollFirst()

擷取並移除這個 deque 的第一個專案,如果這個 deque 是空的,則傳 null 回 。

PollLast()

擷取並移除這個 deque 的最後一個專案,如果這個 deque 是空的,則傳 null 回 。

Pop()

從這個 deque 所代表的堆疊中快顯專案。

Push(Object)

將元素推送至這個 deque 所代表的堆疊 (,換句話說,如果可以立即執行此 deque) ,則不違反容量限制,如果目前沒有可用空間,則會擲回 IllegalStateException

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)

設定 所 JniIdentityHashCode 傳回的值。

(繼承來源 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

線性集合,支援在兩端插入和移除專案。

(繼承來源 IJavaPeerable)
SetPeerReference(JniObjectReference)

設定 所 PeerReference 傳回的值。

(繼承來源 IJavaPeerable)
Size()

傳回這個 deque 中的專案數目。

Spliterator()

Spliterator在這個 所描述 Iterable 的 元素上建立 。

(繼承來源 IIterable)
ToArray()

傳回陣列,其中包含這個集合中的所有專案。

(繼承來源 ICollection)
ToArray(IIntFunction)

傳回包含這個集合中所有專案的陣列,使用提供的 generator 函式來配置傳回的陣列。

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

傳回陣列,其中包含這個集合中的所有專案;傳回陣列的執行時間類型是指定陣列的執行時間類型。

(繼承來源 ICollection)
UnregisterFromRuntime()

取消註冊這個實例,讓執行時間不會從未來的 Java.Interop.JniRuntime+JniValueManager.PeekValue 調用傳回它。

(繼承來源 IJavaPeerable)

明確介面實作

IIterable.Spliterator()

Spliterator在此集合中的專案上建立 。

(繼承來源 ICollection)

擴充方法

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

線性集合,支援在兩端插入和移除專案。

GetJniTypeName(IJavaPeerable)

線性集合,支援在兩端插入和移除專案。

ToEnumerable(IIterable)

線性集合,支援在兩端插入和移除專案。

ToEnumerable<T>(IIterable)

線性集合,支援在兩端插入和移除專案。

適用於