言語

IBlockingDeque インターフェイス

定義

要素の取得時に deque が空でないのを待機し、要素を格納するときに deque 内の領域が使用可能になるのを待つブロック操作をさらにサポートする Deque

[Android.Runtime.Register("java/util/concurrent/BlockingDeque", "", "Java.Util.Concurrent.IBlockingDequeInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public interface IBlockingDeque : IDisposable, Java.Interop.IJavaPeerable, Java.Util.Concurrent.IBlockingQueue, Java.Util.IDeque
[<Android.Runtime.Register("java/util/concurrent/BlockingDeque", "", "Java.Util.Concurrent.IBlockingDequeInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type IBlockingDeque = interface
    interface IBlockingQueue
    interface IQueue
    interface ICollection
    interface IIterable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface IDeque
    interface ISequencedCollection
派生
属性
実装

注釈

要素の取得時に deque が空でないのを待機し、要素を格納するときに deque 内の領域が使用可能になるのを待つブロック操作をさらにサポートする Deque

BlockingDeque メソッドには 4 つの形式があり、すぐには満たすことができないが、将来ある時点で満たされる可能性がある操作の処理方法が異なります。1 つは例外をスローし、2 つ目は特別な値 (操作によっては null または falseを返します)、3 つ目は操作が成功するまで現在のスレッドを無期限にブロックし、4 番目のブロックは、指定された最大時間制限のみをブロックしてから、終了します。 これらのメソッドを次の表にまとめます。

<table class="plain"><caption> BlockingDeque メソッドのSummary</caption><tr><th id="First" colspan="5"> First Element (Head)</th></tr><tr><td></td><th id="FThrow" style="font-weight:normal; font-style: italic">Throws exception</th><th id="FValue" style="font-weight:normal; font-style: italic">Special value</th><th id="FBlock" style="font-weight:normal;font-style: italic">Blocks</th><th id="FTimes" style="font-weight:normal; font-style: italic">Times out</th></tr><tr><th id="FInsert" style="text-align:left">Insert</th><td headers="First FInsert FThrow">#addFirst(Object) addFirst(e)</td><td headers="First FInsert FValue">#offerFirst(Object) offerFirst(e)</td><td headers="First FInsert FBlock">#putFirst(Object) putFirst(e)</td><td headers="FirstFInsert FTimes">#offerFirst(Object, long, TimeUnit) offerFirst(e, time, unit)</td></tr><tr><th id="FRemove" style="text-align:left">Remove</th><td headers="First FRemove FThrow">#removeFirst() removeFirst()</td><td headers== "First FRemove FValue">#pollFirst() pollFirst()</td><td headers="First FRemove FBlock">#takeFirst() takeFirst()</td><td headers="First FRemove FTimes">#pollFirst(long, TimeUnit) pollFirst(time, unit)</td></tr><tr><th id="FExamine" style="text-align:left">Examine</th><td headers="First FExamine FThrow">#getFirst() getFirst()</td><td headers="First FExamine FValue">#peekFirst() peekFirst()</td><td headers="First FExamine FBlock" style="font-style:"font-style:"italic"> 適用できません</td><td headers="First FExamine FTimes" style="font-style:italic">適用できません</td></tr><tr><th id="Last" colspan="5"> Last 要素 (Tail)</th></tr><tr><td></td><th id="LThrow" style="font-weight:normal; font-style: italic">Throws exception</th><th id="LValue" style="font-weight:normal; font-style: italic">Special value</th><th id="LBlock" style="font-weight:normal; font-style: italic">Blocks</th><th id="LTimes" style="font-weight:normal; font-style:italic">Times out</th></tr><tr><th id="LInsert" style="text-align:left">Insert</th><td headers="Last LInsert LThrow">#addLast(Object) addLast(e)</td ><td headers="Last LInsert LValue">#offerLast(Object) offerLast(e)</td><td headers="Last LInsert LBlock">#putLast(Object) putLast(e)</td><td headers="Last LInsert LTimes">#offerLast(Object, long, TimeUnit) offerLast(e, time, unit)</td></tr><tr><th id="LRemove" style="text-align:left">Remove</th><td headers="Last LRemove LThrow">#removeLast() removeLast()</td><td headers="Last LRemove LValue">#pollLast() pollLast()</td><td headers="" Last LRemove LBlock">#takeLast() takeLast()</td><td headers="Last LRemove LTimes">#pollLast(long, TimeUnit) pollLast(time, unit)</td></tr><tr><th id="LExamine" style="text-align:left">Examine</th><td headers="Last LExamine LThrow">#getLast() getLast()</td><td headers="Last LExamine LValue">#peekLast() peekLast()</td><td headers="Last LExamine LBlock" style="font-style:italic">適用できません</td><td headers="Last LExamine LTimes" style="font-style:italic">適用できません</td></tr></table>

他の BlockingQueueと同様に、 BlockingDeque はスレッド セーフであり、null 要素を許可せず、容量に制約がある (または許可されない) 場合もあります。

BlockingDeque実装は、FIFO BlockingQueueとして直接使用できます。 BlockingQueue インターフェイスから継承されたメソッドは、次の表に示すようにBlockingDequeメソッドと正確に等しくなります。

<table class="plain"><caption> BlockingQueue メソッドと BlockingDeque メソッドのComparison</caption><tr><td></td><th id="BQueue">BlockingQueue メソッド</th><th id="BDeque">BlockingDeque 同等のメソッド</th></tr><tr><th id="Insert" rowspan="4" style="text-align:left; vertical-align:top">Insert</th><th id="add" style="font-weight:normal; text-align:left">#add(Object) add(e)</th><td headers="Insert BDeque add">#addLast(Object) addLast(e)</td></tr><tr><th id="offer1" style="font-weight:normal; text-align:left">#offer(Object) offer(e)</th><td headers="Insert BDeque offer1">#offerLast(Object) offerLast(e)</td></tr><tr><th id="put" style="font-weight:normal; text-align:left">#put(Object) put(e)</th><td headers="Insert BDeque put">#putLast(Object) putLast(e)</td></tr><tr><th id="offer2" style="font-weight:normal;text-align:left">#offer(Object, long, TimeUnit) offer(e, time, unit)</th><td headers="Insert BDeque offer2">#offerLast(Object, long, TimeUnit) offerLast(e, time, unit)</td></tr><tr><th id="Remove" rowspan="4" style="text-align:left; vertical-align:top">Remove</th><th id="remove" style="font-weight:normal; text-align:left">#remove() remove()</th><td headers="Remove BDeque remove">#removeFirst() removeFirst()</td></tr><tr><th id="poll1" style="font-weight:normal;text-align:left">#poll() poll()</th><td headers="Remove BDeque poll1">#pollFirst() pollFirst()</td></tr><tr><th id="take" style="font-weight:normal; text-align:left">#take() take()</th><td headers="Remove BDeque take">#takeFirst() takeFirst()</td></tr><tr><th id="poll2" style="font-weight:normal; text-align:left">#poll(long, TimeUnit) poll(time, unit)</th><td headers="Remove BDeque poll2">#pollFirst(long, TimeUnit) pollFirst(time, unit)</td></tr><tr><th id="Examine" rowspan="2" style="text-align:left; vertical-align:top">Examine</th><th id="element" style="font-weight:normal; text-align:left">#element() element()</th><td headers="Examine BDeque element">#getFirst() getFirst()</td></tr><tr><th id="peek" style="font-weight:normal; text-align:left">#peek() peek()</th><td headers="Examine BDeque peek">#peekFirst() peekFirst()</td></tr></table>

メモリ整合性の影響: 他の同時実行コレクションと同様に、オブジェクトを BlockingDeque<i>happen-before</i> に配置する前のスレッド内のアクションは、別のスレッドの BlockingDeque からその要素にアクセスまたは削除された後のアクションです。

このインターフェイスは、Java コレクション フレームワークのメンバーです

1.6 で追加されました。

Javaドキュメント。

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

プロパティ

名前 説明
First

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

(継承元 IDeque)
Handle

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

(継承元 IJavaObject)
IsEmpty

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

(継承元 ICollection)
JniIdentityHashCode

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

(継承元 IJavaPeerable)
JniManagedPeerState

マネージド ピアの状態。

(継承元 IJavaPeerable)
JniObjectReferenceControlBlock

要素の取得時に deque が空でないのを待機し、要素を格納するときに deque 内の領域が使用可能になるのを待つブロック操作をさらにサポートする Deque

(継承元 IJavaPeerable)
JniPeerMembers

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

(継承元 IJavaPeerable)
Last

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

(継承元 IDeque)
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 内の要素に対する反復子を逆順に返します。

(継承元 IDeque)
Disposed()

インスタンスが破棄されたときに呼び出されます。

(継承元 IJavaPeerable)
DisposeUnlessReferenced()

このインスタンスへの未処理の参照がない場合は、 Dispose()を呼び出します。それ以外の場合は何も実行しません。

(継承元 IJavaPeerable)
DrainTo(ICollection, Int32)

このキューから指定された数の使用可能な要素を最大で削除し、指定されたコレクションに追加します。

(継承元 IBlockingQueue)
DrainTo(ICollection)

このキューから使用可能なすべての要素を削除し、指定されたコレクションに追加します。

(継承元 IBlockingQueue)
Element()

この deque で表されるキューの先頭 (つまり、この deque の最初の要素) を取得しますが、削除しません。

Equals(Object)

指定したオブジェクトをこのコレクションと比較して等しいかどうかを確認します。

(継承元 ICollection)
Finalized()

インスタンスが終了したときに呼び出されます。

(継承元 IJavaPeerable)
ForEach(IConsumer)

すべての要素が処理されるか、アクションが例外をスローするまで、 Iterable の各要素に対して指定されたアクションを実行します。

(継承元 IIterable)
GetFirst()

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

(継承元 ISequencedCollection)
GetHashCode()

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

(継承元 ICollection)
GetLast()

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

(継承元 ISequencedCollection)
Iterator()

この deque 内の要素に対する反復子を適切な順序で返します。

Offer(Object, Int64, TimeUnit)

指定した要素を、この deque で表されるキュー (つまり、この deque の末尾) に挿入し、領域が使用可能になるまで必要に応じて、指定された待機時間まで待機します。

Offer(Object)

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

OfferFirst(Object, Int64, TimeUnit)

指定した要素をこの deque の先頭に挿入し、領域が使用可能になるまで必要な場合は、指定した待機時間まで待機します。

OfferFirst(Object)

容量制限に違反せずにすぐに行うことができる場合は、指定した要素をこの deque の先頭に挿入し、成功すると true を返し、現在使用できる領域がない場合は false します。

OfferLast(Object, Int64, TimeUnit)

この deque の末尾に指定した要素を挿入し、領域が使用可能になるまで必要な場合は、指定された待機時間まで待機します。

OfferLast(Object)

容量制限に違反せずにすぐに行うことができる場合は、この deque の末尾に指定された要素を挿入し、成功すると true を返し、現在使用できる領域がない場合は false します。

Peek()

この deque で表されるキューの先頭 (つまり、この deque の最初の要素) を取得しますが、削除しません。または、この deque が空の場合は null を返します。

PeekFirst()

この deque の最初の要素を取得しますが、削除しません。または、この deque が空の場合は null を返します。

(継承元 IDeque)
PeekLast()

この deque の最後の要素を取得しますが、削除しません。または、この deque が空の場合は null を返します。

(継承元 IDeque)
Poll()

この deque で表されるキューの先頭 (つまり、この deque の最初の要素) を取得して削除するか、この deque が空の場合は null を返します。

Poll(Int64, TimeUnit)

この deque で表されるキューの先頭 (つまり、この deque の最初の要素) を取得して削除し、要素が使用可能になるまで必要に応じて、指定された待機時間まで待機します。

PollFirst()

この deque の最初の要素を取得して削除するか、この deque が空の場合は null を返します。

(継承元 IDeque)
PollFirst(Int64, TimeUnit)

この deque の最初の要素を取得して削除し、要素が使用可能になるまで必要な場合は、指定された待機時間まで待機します。

PollLast()

この deque の最後の要素を取得して削除するか、この deque が空の場合は null を返します。

(継承元 IDeque)
PollLast(Int64, TimeUnit)

この deque の最後の要素を取得して削除し、要素が使用可能になるまで必要な場合は、指定された待機時間まで待機します。

Pop()

この deque で表されるスタックから要素をポップします。

(継承元 IDeque)
Push(Object)

容量制限に違反することなくすぐに実行できる場合は、この deque によって表されるスタック (つまり、この deque の先頭) に要素をプッシュし、現在使用できる領域がない場合は IllegalStateException をスローします。

Put(Object)

指定した要素を、この deque で表されるキュー (つまり、この deque の末尾) に挿入し、領域が使用可能になるまで必要に応じて待機します。

PutFirst(Object)

指定した要素をこの deque の先頭に挿入し、スペースが使用可能になるまで必要に応じて待機します。

PutLast(Object)

この deque の末尾に指定した要素を挿入し、必要に応じて領域が使用可能になるまで待機します。

RemainingCapacity()

このキューが (メモリやリソースの制約がない場合に) ブロックせずに受け入れられる、または組み込み制限がない場合に Integer.MAX_VALUE できる追加の要素の数を返します。

(継承元 IBlockingQueue)
Remove()

この deque によって表されるキューの先頭 (つまり、この deque の最初の要素) を取得して削除します。

Remove(Object)

指定した要素の最初の出現箇所をこの deque から削除します。

RemoveAll(ICollection)

指定したコレクションにも含まれているこのコレクションのすべての要素を削除します (省略可能な操作)。

(継承元 ICollection)
RemoveFirst()

このコレクションの最初の要素を削除して返します (省略可能な操作)。

(継承元 ISequencedCollection)
RemoveFirstOccurrence(Object)

指定した要素の最初の出現箇所をこの deque から削除します。

RemoveIf(IPredicate)

指定された述語を満たすこのコレクションのすべての要素を削除します (省略可能な操作)。

(継承元 ICollection)
RemoveLast()

このコレクションの最後の要素を削除して返します (省略可能な操作)。

(継承元 ISequencedCollection)
RemoveLastOccurrence(Object)

指定した要素の最後の出現箇所をこの deque から削除します。

RetainAll(ICollection)

指定したコレクションに含まれるこのコレクション内の要素のみを保持します (省略可能な操作)。

(継承元 ICollection)
Reversed()

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

(継承元 ISequencedCollection)
SetJniIdentityHashCode(Int32)

JniIdentityHashCodeによって返される値を設定します。

(継承元 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

要素の取得時に deque が空でないのを待機し、要素を格納するときに deque 内の領域が使用可能になるのを待つブロック操作をさらにサポートする Deque

(継承元 IJavaPeerable)
SetPeerReference(JniObjectReference)

PeerReferenceによって返される値を設定します。

(継承元 IJavaPeerable)
Size()

この deque 内の要素の数を返します。

Spliterator()

このSpliteratorで説明されている要素に対してIterableを作成します。

(継承元 IIterable)
Take()

この deque で表されるキューの先頭 (つまり、この deque の最初の要素) を取得して削除し、要素が使用可能になるまで必要に応じて待機します。

TakeFirst()

この deque の最初の要素を取得して削除し、要素が使用可能になるまで必要に応じて待機します。

TakeLast()

この deque の最後の要素を取得して削除し、必要に応じて要素が使用可能になるまで待機します。

ToArray()

このコレクション内のすべての要素を含む配列を返します。

(継承元 ICollection)
ToArray(IIntFunction)

指定した generator 関数を使用して、返された配列を割り当てる、このコレクション内のすべての要素を含む配列を返します。

(継承元 ICollection)
ToArray(Object[])

このコレクション内のすべての要素を含む配列を返します。返される配列のランタイム型は、指定された配列のランタイム型です。

(継承元 ICollection)
UnregisterFromRuntime()

ランタイムが将来の Java.Interop.JniRuntime+JniValueManager.PeekValue 呼び出しから返されないように、このインスタンスの登録を解除します。

(継承元 IJavaPeerable)

明示的なインターフェイスの実装

名前 説明
IIterable.Spliterator()

このコレクション内の要素に対して Spliterator を作成します。

(継承元 ICollection)
ISequencedCollection.Reversed()

追加する

(継承元 IDeque)

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

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

JavaAs<TResult>(IJavaPeerable)

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

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

要素の取得時に deque が空でないのを待機し、要素を格納するときに deque 内の領域が使用可能になるのを待つブロック操作をさらにサポートする Deque

OfferAsync(IBlockingQueue, Object, Int64, TimeUnit)

要素の取得時に deque が空でないのを待機し、要素を格納するときに deque 内の領域が使用可能になるのを待つブロック操作をさらにサポートする Deque

OfferAsync(IBlockingQueue, Object)

要素の取得時に deque が空でないのを待機し、要素を格納するときに deque 内の領域が使用可能になるのを待つブロック操作をさらにサポートする Deque

OfferFirstAsync(IBlockingDeque, Object, Int64, TimeUnit)

要素の取得時に deque が空でないのを待機し、要素を格納するときに deque 内の領域が使用可能になるのを待つブロック操作をさらにサポートする Deque

OfferFirstAsync(IBlockingDeque, Object)

要素の取得時に deque が空でないのを待機し、要素を格納するときに deque 内の領域が使用可能になるのを待つブロック操作をさらにサポートする Deque

OfferLastAsync(IBlockingDeque, Object, Int64, TimeUnit)

要素の取得時に deque が空でないのを待機し、要素を格納するときに deque 内の領域が使用可能になるのを待つブロック操作をさらにサポートする Deque

OfferLastAsync(IBlockingDeque, Object)

要素の取得時に deque が空でないのを待機し、要素を格納するときに deque 内の領域が使用可能になるのを待つブロック操作をさらにサポートする Deque

PollAsync(IBlockingQueue, Int64, TimeUnit)

要素の取得時に deque が空でないのを待機し、要素を格納するときに deque 内の領域が使用可能になるのを待つブロック操作をさらにサポートする Deque

PollFirstAsync(IBlockingDeque, Int64, TimeUnit)

要素の取得時に deque が空でないのを待機し、要素を格納するときに deque 内の領域が使用可能になるのを待つブロック操作をさらにサポートする Deque

PollLastAsync(IBlockingDeque, Int64, TimeUnit)

要素の取得時に deque が空でないのを待機し、要素を格納するときに deque 内の領域が使用可能になるのを待つブロック操作をさらにサポートする Deque

PutAsync(IBlockingQueue, Object)

要素の取得時に deque が空でないのを待機し、要素を格納するときに deque 内の領域が使用可能になるのを待つブロック操作をさらにサポートする Deque

PutFirstAsync(IBlockingDeque, Object)

要素の取得時に deque が空でないのを待機し、要素を格納するときに deque 内の領域が使用可能になるのを待つブロック操作をさらにサポートする Deque

PutLastAsync(IBlockingDeque, Object)

要素の取得時に deque が空でないのを待機し、要素を格納するときに deque 内の領域が使用可能になるのを待つブロック操作をさらにサポートする Deque

TakeAsync(IBlockingQueue)

要素の取得時に deque が空でないのを待機し、要素を格納するときに deque 内の領域が使用可能になるのを待つブロック操作をさらにサポートする Deque

TakeFirstAsync(IBlockingDeque)

要素の取得時に deque が空でないのを待機し、要素を格納するときに deque 内の領域が使用可能になるのを待つブロック操作をさらにサポートする Deque

TakeLastAsync(IBlockingDeque)

要素の取得時に deque が空でないのを待機し、要素を格納するときに deque 内の領域が使用可能になるのを待つブロック操作をさらにサポートする Deque

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側で有効であることを確認します。

適用対象