Language

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, Java.Util.ISequencedCollection
[<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
    interface ISequencedCollection
派生
属性
実装

注釈

両端の要素の挿入と削除をサポートする線形コレクション。 名前 deque は "double ended queue" の略で、通常は "deck" と発音されます。 ほとんどの Deque 実装では、含まれる要素の数に固定制限はありませんが、このインターフェイスでは容量制限付き deque と固定サイズ制限のない deque がサポートされています。

このインターフェイスは、deque の両端にある要素にアクセスするメソッドを定義します。 要素の挿入、削除、および検査を行うメソッドが用意されています。 これらの各メソッドは 2 つの形式で存在します。1 つは操作が失敗した場合に例外をスローし、もう 1 つは特殊な値 (操作に応じて null または false) を返します。 後者の形式の挿入操作は、容量制限付きの Deque 実装で使用するために特別に設計されています。ほとんどの実装では、挿入操作は失敗できません。

上記の 12 の方法を次の表にまとめます。

<table class="striped"><caption>Deque メソッドのSummary</caption><thead><tr><td rowspan="2"></td><th scope="col" colspan="2 "> First Element (Head)</th><th scope="col" colspan="2"> Last Element (Tail)</th></tr><tr><th scope="col" style="font-weight:normal; font-style:italic">Throws exception</th><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><th scope="col" style="font-weight:normal; font-style:italic">Special value</th></tr></thead><tbody><tr><th scope="row">Insert</th><td>#addFirst(Object) addFirst(e)</td><td>#offerFirst(Object) offerFirst(e)</td><td>#addLast(Object) addLast(e)</td><td>#offerLast(Object) offerLast(e)</td></tr><tr><th scope="row">Remove</th><td>#removeFirst() removeFirst()</td><td>#pollFirst() pollFirst()</td><td>#removeLast() removeLast()</td>< td>#pollLast() pollLast()</td></tr><tr><th scope="row">Examine</th><td>#getFirst() getFirst()</td><td>#peekFirst() peekFirst()</td><td>#getLast() getLast()</td><td>#peekLast() peekLast()</td></tr></tbody></table>

このインターフェイスは、 Queue インターフェイスを拡張します。 deque をキューとして使用すると、FIFO (First-In-First-Out) の動作が発生します。 要素は deque の末尾に追加され、最初から削除されます。 Queue インターフェイスから継承されたメソッドは、次の表に示すようにDequeメソッドと正確に等しくなります。

<table class="striped"><caption> Queue メソッドと Deque メソッドのComparison</caption><thead><tr><th scope="col">Queue Method</th><th scope="col"> Equivalent Deque Method </th/tr><></thead><tbody><tr><th scope="row">#add(Object) add(e)</th><td>#addLast(Object) addLast(e)</td></tr><tr><th scope="row">#offer(Object) offer(e)</th><td>#offerLast(Object) offerLast(e)</td></tr><tr><th scope="row">#remove() remove()</th><td>#removeFirst() removeFirst()</td></tr><tr><th scope="row">#poll() poll()</th><>#pollFirst() pollFirst()</td></tr><tr><th scope="row">#element() element()</th><td>#getFirst() getFirst()</td></tr><tr><th scope="row">#peek() peek()</th><td>#peekFirst() peekFirst()</td></tr></tbody></table>

Deques は LIFO (Last-In-First-Out) スタックとしても使用できます。 このインターフェイスは、レガシ Stack クラスを優先して使用する必要があります。 deque をスタックとして使用すると、要素がプッシュされ、deque の先頭からポップされます。 スタック メソッドは、次の表に示すように、 Deque メソッドと同等です。

<table class="striped"><caption>Comparison of Stack および Deque メソッド</caption><thead><tr><th scope="col"> Stack メソッド</th><th scope="col"> 同等の Deque メソッド<></tr></thead><body><tr><th scope="row">#push(Object) push(e)</th><td>#addFirst(Object) addFirst(e)</td></tr><tr><th scope="row">#pop() pop()</th><td>#removeFirst() removeFirst()</td></tr><tr><th scope="row">#peek() peek()</th><td>#getFirst() getFirst()</td></tr></tbody></table>

#peek peekメソッドは、deque がキューまたはスタックとして使用されている場合も同様に機能します。どちらの場合も、要素は deque の先頭から描画されます。

このインターフェイスには、内部要素 ( #removeFirstOccurrence removeFirstOccurrence と #removeLastOccurrence removeLastOccurrence) を削除する 2 つのメソッドが用意されています。

List インターフェイスとは異なり、このインターフェイスは要素へのインデックス付きアクセスをサポートしていません。

Deque実装では null 要素の挿入を禁止する必要はありませんが、これを行うことを強くお勧めします。 null 要素を許可する Deque 実装のユーザーは、null を挿入する機能を利用 しないことを 強くお勧めします。 これは、 null が、deque が空であることを示すためにさまざまなメソッドによって特別な戻り値として使用されるためです。

Deque 一般に、 equals メソッドと hashCode メソッドの要素ベースのバージョンは定義されず、代わりにクラス Objectから ID ベースのバージョンが継承されます。

1.6 で追加されました。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

プロパティ

名前 説明
First

この deque の最初の要素を取得しますが、削除しません。

Handle

基になる Android オブジェクトの JNI 値を取得します。

(継承元 IJavaObject)
IsEmpty

このCollectionに要素が含trueを返します。

(継承元 ICollection)
JniIdentityHashCode

ラップされたインスタンスの java.lang.System.identityHashCode() の値を返します。

(継承元 IJavaPeerable)
JniManagedPeerState

マネージド ピアの状態。

(継承元 IJavaPeerable)
JniObjectReferenceControlBlock

両端の要素の挿入と削除をサポートする線形コレクション。

(継承元 IJavaPeerable)
JniPeerMembers

メンバー アクセスと呼び出しのサポート。

(継承元 IJavaPeerable)
Last

この deque の最後の要素を取得しますが、削除しません。

PeerReference

ラップされたJava オブジェクト インスタンスのJniObjectReferenceを返します。

(継承元 IJavaPeerable)

メソッド

名前 説明
Add(Object)

指定した要素を、容量制限に違反せずにすぐに行うことができる場合は、この deque によって表されるキュー (つまり、この deque の末尾) に挿入し、成功時に true を返し、現在使用可能な領域がない場合は IllegalStateException をスローします。

AddAll(ICollection)

指定したコレクション内のすべての要素をこのコレクションに追加します (省略可能な操作)。

(継承元 ICollection)
AddFirst(Object)

容量制限に違反せずにすぐに実行できる場合は、指定した要素をこの deque の先頭に挿入し、現在使用できる領域がない場合は IllegalStateException をスローします。

AddLast(Object)

容量制限に違反せずにすぐに実行できる場合は、この 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)
GetFirst()

このコレクションの最初の要素を取得します。

(継承元 ISequencedCollection)
GetHashCode()

このコレクションのハッシュ コード値を返します。

(継承元 ICollection)
GetLast()

このコレクションの最後の要素を取得します。

(継承元 ISequencedCollection)
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)
Reversed()

このコレクションの逆順ビューを返します。

(継承元 ISequencedCollection)
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)
ISequencedCollection.Reversed()

追加する

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

両端の要素の挿入と削除をサポートする線形コレクション。

ToEnumerable(IIterable)

Java IIterableを反復処理するIEnumerableを返します。これにより、foreachと LINQ をJavaコレクション型で使用できます。 各要素は、Java インスタンスから対応するマネージド型にマーシャリングされます。

ToEnumerable<T>(IIterable)

Java IIterableを反復処理し、各要素をTにマーシャリングするIEnumerable<T>を返します。 これにより、foreachと LINQ をJavaコレクション型で使用できます。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象