次の方法で共有


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
派生
属性
実装

注釈

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

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

<table class="plain">caption Summary of BlockingDeque methods</caption><tr><th id="First" colspan="5"> First Element (Head)</th></tr><td><></td<>th id="FThrow" style="font-weight:normal; font-style: italic">Throws exception</th><id="FValue" style="font-weight:normal; font-style: italic">Special value</th th><id="FBlock" style="font-weight:><正常;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"/td td headers="First FInsert FBlock"#putFirst(Object) putFirst(e)<>/td><td headers="First FInsert FThrowFInsert 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:italic">not applicable</td td<>headers="First FExamine FTimes" style="font-style:italic">not applicable</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><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 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 th><td headers="Last LExamine LThrow">#getLast() getLast()</td><td headers="Last LExamine LValue"><#peekLast() peekLast()/td td><td headers="Last LExamine LBlock" style="font-style:italic">not applicable</td td<>td headers="Last LExamine LTimes" style="font-style:italic">not applicable</td<>/tr></table>

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

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

<table class="plain">caption Comparison of BlockingQueue and BlockingDeque methods</caption><tr><td></td><th id="BQueue">BlockingQueue Method</th><th id="BDeque"> Equivalent BlockingDeque Method</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 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="BDeque peek を調べる">#peekFirst() peekFirst()</td></tr></table>

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

このインターフェイスは、Java Collections Framework の メンバーです

1.6 で追加されました。

の Java ドキュメントjava.util.concurrent.BlockingDeque

このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

プロパティ

First

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

(継承元 IDeque)
Handle

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

(継承元 IJavaObject)
IsEmpty

要素 Collection が含まれている場合に返します。

(継承元 ICollection)
JniIdentityHashCode

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

(継承元 IJavaPeerable)
JniManagedPeerState

マネージド ピアの状態。

(継承元 IJavaPeerable)
JniPeerMembers

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

(継承元 IJavaPeerable)
Last

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

(継承元 IDeque)
PeerReference

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

(継承元 IJavaPeerable)

メソッド

Add(Object)

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

AddAll(ICollection)

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

(継承元 ICollection)
AddFirst(Object)

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

AddLast(Object)

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

Clear()

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

(継承元 ICollection)
Contains(Object)

trueこの deque に指定した要素が含まれている場合に返します。

ContainsAll(ICollection)

このコレクションに true 、指定したコレクション内のすべての要素が含まれている場合に返します。

(継承元 ICollection)
DescendingIterator()

この deque 内の要素に対する反復子を逆順に返します。

(継承元 IDeque)
Disposed()

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

(継承元 IJavaPeerable)
DisposeUnlessReferenced()

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

(継承元 IJavaPeerable)
DrainTo(ICollection)

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

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

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

(継承元 IBlockingQueue)
Element()

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

Equals(Object)

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

(継承元 ICollection)
Finalized()

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

(継承元 IJavaPeerable)
ForEach(IConsumer)

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

(継承元 IIterable)
GetHashCode()

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

(継承元 ICollection)
Iterator()

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

Offer(Object)

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

Offer(Object, Int64, TimeUnit)

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

OfferFirst(Object)

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

OfferFirst(Object, Int64, TimeUnit)

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

OfferLast(Object)

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

OfferLast(Object, Int64, TimeUnit)

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

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 の先頭) に要素をプッシュし、現在使用できる領域がない場合は an を 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()

この deque の最初の要素を取得して削除します。

(継承元 IDeque)
RemoveFirstOccurrence(Object)

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

RemoveIf(IPredicate)

指定された述語を満たすこのコレクションのすべての要素を削除します。

(継承元 ICollection)
RemoveLast()

この deque の最後の要素を取得して削除します。

(継承元 IDeque)
RemoveLastOccurrence(Object)

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

RetainAll(ICollection)

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

(継承元 ICollection)
SetJniIdentityHashCode(Int32)

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

(継承元 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

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

(継承元 IJavaPeerable)
SetPeerReference(JniObjectReference)

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

(継承元 IJavaPeerable)
Size()

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

Spliterator()

Spliteratorこれで説明されている要素の上に a を作成します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このコレクション内の要素の上に a を作成します。

(継承元 ICollection)

拡張メソッド

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

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

GetJniTypeName(IJavaPeerable)

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

OfferFirstAsync(IBlockingDeque, Object)

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

OfferFirstAsync(IBlockingDeque, Object, Int64, TimeUnit)

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

OfferLastAsync(IBlockingDeque, Object)

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

OfferLastAsync(IBlockingDeque, Object, Int64, TimeUnit)

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

PollFirstAsync(IBlockingDeque, Int64, TimeUnit)

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

PollLastAsync(IBlockingDeque, Int64, TimeUnit)

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

PutFirstAsync(IBlockingDeque, Object)

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

PutLastAsync(IBlockingDeque, Object)

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

TakeFirstAsync(IBlockingDeque)

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

TakeLastAsync(IBlockingDeque)

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

OfferAsync(IBlockingQueue, Object)

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

OfferAsync(IBlockingQueue, Object, Int64, TimeUnit)

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

PollAsync(IBlockingQueue, Int64, TimeUnit)

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

PutAsync(IBlockingQueue, Object)

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

TakeAsync(IBlockingQueue)

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

ToEnumerable(IIterable)

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

ToEnumerable<T>(IIterable)

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

適用対象