E
- このコレクション内に保持される要素の型public interface BlockingDeque<E> extends BlockingQueue<E>, Deque<E>
Deque
です。
BlockingDeque
メソッドには4つの形式があり、すぐには達成できなくても将来のある時点で達成できる可能性がある操作を異なる方法で処理します。1つめは例外をスローし、2つめは特殊な値(操作に応じてnull
とfalse
のいずれか)を返し、3つめは操作が正常に完了するまで現在のスレッドを無期限にブロックし、4つめは処理を中止するまで指定された制限時間内のみブロックします。これらのメソッドについて、次の表にまとめます。
最初の要素(先頭) | ||||
例外のスロー | 特殊な値 | ブロック | タイム・アウト | |
挿入 | addFirst(e) |
offerFirst(e) |
putFirst(e) |
offerFirst(e, time, unit) |
削除 | removeFirst() |
pollFirst() |
takeFirst() |
pollFirst(time, unit) |
検査 | getFirst() |
peekFirst() |
適用外 | 適用外 |
最後の要素(末尾) | ||||
例外のスロー | 特殊な値 | ブロック | タイム・アウト | |
挿入 | addLast(e) |
offerLast(e) |
putLast(e) |
offerLast(e, time, unit) |
削除 | removeLast() |
pollLast() |
takeLast() |
pollLast(time, unit) |
検査 | getLast() |
peekLast() |
適用外 | 適用外 |
BlockingQueue
と同様、BlockingDeque
はスレッド・セーフであり、null要素を許可しません。また、容量制約を受ける場合と受けない場合があります。
BlockingDeque
実装は、FIFOのBlockingQueue
として直接使用されることがあります。BlockingQueue
インタフェースから継承されたメソッドは、次の表に示すようにBlockingDeque
メソッドと完全に同等です。
BlockingQueue メソッド |
同等のBlockingDeque メソッド |
挿入 | |
add(e) |
addLast(e) |
offer(e) |
offerLast(e) |
put(e) |
putLast(e) |
offer(e, time, unit) |
offerLast(e, time, unit) |
削除 | |
remove() |
removeFirst() |
poll() |
pollFirst() |
take() |
takeFirst() |
poll(time, unit) |
pollFirst(time, unit) |
検査 | |
element() |
getFirst() |
peek() |
peekFirst() |
メモリー整合性効果: ほかの並行処理コレクションと同様、オブジェクトをBlockingDeque
に配置する前のスレッド内のアクションは、別のスレッドでのその要素へのアクセスまたはBlockingDeque
からの削除に続くアクションよりも前に発生します。
このインタフェースは、Java Collections Frameworkのメンバーです。
修飾子と型 | メソッドと説明 |
---|---|
boolean |
add(E e)
指定された要素を、この両端キューで表されるキュー(つまり、この両端キューの末尾)に、容量制限に違反することなしにすぐに挿入できる場合には、そうします。成功した場合は
true を返し、使用可能な空き領域がその時点で存在しない場合はIllegalStateException をスローします。 |
void |
addFirst(E e)
容量制限に違反することなく指定された要素をこの両端キューの先頭にすぐに挿入できる場合には、そうします。使用可能な空き領域がその時点で存在しない場合は
IllegalStateException をスローします。 |
void |
addLast(E e)
容量制限に違反することなく指定された要素をこの両端キューの末尾にすぐに挿入できる場合には、そうします。使用可能な空き領域がその時点で存在しない場合は
IllegalStateException をスローします。 |
boolean |
contains(Object o)
指定された要素がこの両端キューに含まれている場合に
true を返します。 |
E |
element()
この両端キューによって表されるキューの先頭(つまり、この両端キューの最初の要素)を取得しますが、削除しません。
|
Iterator<E> |
iterator()
この両端キュー内の要素を適切な順序で反復処理するイテレータを返します。
|
boolean |
offer(E e)
指定された要素を、この両端キューで表されるキュー(つまり、この両端キューの末尾)に、容量制限に違反することなしにすぐに挿入できる場合には、そうします。成功した場合は
true を返し、使用可能な空き領域がその時点で存在しない場合はfalse を返します。 |
boolean |
offer(E e, long timeout, TimeUnit unit)
指定された要素をこの両端キューで表されるキュー(つまり、この両端キューの末尾)に挿入します。必要に応じて、指定された待機時間まで空きが生じるのを待機します。
|
boolean |
offerFirst(E e)
容量制限に違反することなしに指定された要素をこの両端キューの先頭にすぐに挿入できる場合には、そうします。成功した場合は
true を返し、使用可能な空き領域がその時点で存在しない場合はfalse を返します。 |
boolean |
offerFirst(E e, long timeout, TimeUnit unit)
指定された要素をこの両端キューの先頭に挿入します。必要に応じて、指定された待機時間まで空きが生じるのを待機します。
|
boolean |
offerLast(E e)
容量制限に違反することなしに指定された要素をこの両端キューの末尾にすぐに挿入できる場合には、そうします。成功した場合は
true を返し、使用可能な空き領域がその時点で存在しない場合はfalse を返します。 |
boolean |
offerLast(E e, long timeout, TimeUnit unit)
指定された要素をこの両端キューの末尾に挿入します。必要に応じて、指定された待機時間まで空きが生じるのを待機します。
|
E |
peek()
この両端キューによって表されるキューの先頭(つまり、この両端キューの最初の要素)を取得しますが、削除しません。両端キューが空の場合は、
null を返します。 |
E |
poll()
この両端キューによって表されるキューの先頭(つまり、この両端キューの最初の要素)を取得および削除します。両端キューが空の場合は、
null を返します。 |
E |
poll(long timeout, TimeUnit unit)
この両端キューによって表されるキューの先頭(つまり、この両端キューの最初の要素)を取得して削除します。必要に応じて、指定された待機時間まで要素が利用可能になるのを待機します。
|
E |
pollFirst(long timeout, TimeUnit unit)
この両端キューの最初の要素を取得して削除します。必要に応じて、指定された待機時間まで要素が利用可能になるのを待機します。
|
E |
pollLast(long timeout, TimeUnit unit)
この両端キューの最後の要素を取得して削除します。必要に応じて、指定された待機時間まで要素が利用可能になるのを待機します。
|
void |
push(E e)
容量制限に違反することなしに要素をこの両端キューで表されるスタック(つまり、この両端キューの先頭)にすぐにプッシュできる場合は、そうします。使用可能な空き領域がその時点で存在しない場合は
IllegalStateException をスローします。 |
void |
put(E e)
指定された要素をこの両端キューで表されるキュー(つまり、この両端キューの末尾)に挿入します。必要に応じて、空きが生じるまで待機します。
|
void |
putFirst(E e)
指定された要素をこの両端キューの先頭に挿入します。必要に応じて、空きが生じるまで待機します。
|
void |
putLast(E e)
指定された要素をこの両端キューの末尾に挿入します。必要に応じて、空きが生じるまで待機します。
|
E |
remove()
この両端キューによって表されるキューの先頭(つまり、この両端キューの最初の要素)を取得して削除します。
|
boolean |
remove(Object o)
指定された要素のうち最初に出現したものを、この両端キューから削除します。
|
boolean |
removeFirstOccurrence(Object o)
指定された要素のうち最初に出現したものを、この両端キューから削除します。
|
boolean |
removeLastOccurrence(Object o)
指定された要素のうち最後に出現したものを、この両端キューから削除します。
|
int |
size()
この両端キュー内の要素の数を返します。
|
E |
take()
この両端キューによって表されるキューの先頭(つまり、この両端キューの最初の要素)を取得して削除します。必要に応じて、要素が利用可能になるまで待機します。
|
E |
takeFirst()
この両端キューの最初の要素を取得して削除します。必要に応じて、要素が利用可能になるまで待機します。
|
E |
takeLast()
この両端キューの最後の要素を取得して削除します。必要に応じて、要素が利用可能になるまで待機します。
|
drainTo, drainTo, remainingCapacity
descendingIterator, getFirst, getLast, peekFirst, peekLast, pollFirst, pollLast, pop, removeFirst, removeLast
addAll, clear, containsAll, equals, hashCode, isEmpty, parallelStream, removeAll, removeIf, retainAll, spliterator, stream, toArray, toArray
void addFirst(E e)
IllegalStateException
をスローします。容量制限のある両端キューを使用する場合、通常はofferFirst
メソッドを使用することをお薦めします。addFirst
、インタフェース: Deque<E>
e
- 追加する要素IllegalStateException
- 容量制限のために、この時点で要素を追加できない場合ClassCastException
- 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException
- 指定された要素がnullである場合IllegalArgumentException
- 指定された要素のあるプロパティが原因で、この両端キューにその要素を追加できない場合void addLast(E e)
IllegalStateException
をスローします。容量制限のある両端キューを使用する場合、通常はofferLast
メソッドを使用することをお薦めします。addLast
、インタフェース: Deque<E>
e
- 追加する要素IllegalStateException
- 容量制限のために、この時点で要素を追加できない場合ClassCastException
- 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException
- 指定された要素がnullである場合IllegalArgumentException
- 指定された要素のあるプロパティが原因で、この両端キューにその要素を追加できない場合boolean offerFirst(E e)
true
を返し、使用可能な空き領域がその時点で存在しない場合はfalse
を返します。容量制限のある両端キューを使用する場合、通常は、要素の挿入に失敗した場合に例外をスローするのみのaddFirst
メソッドよりもこのメソッドを使用することをお薦めします。offerFirst
、インタフェース: Deque<E>
e
- 追加する要素true
、それ以外の場合はfalse
ClassCastException
- 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException
- 指定された要素がnullである場合IllegalArgumentException
- 指定された要素のあるプロパティが原因で、この両端キューにその要素を追加できない場合boolean offerLast(E e)
true
を返し、使用可能な空き領域がその時点で存在しない場合はfalse
を返します。容量制限のある両端キューを使用する場合、通常は、要素の挿入に失敗した場合に例外をスローするのみのaddLast
メソッドよりもこのメソッドを使用することをお薦めします。offerLast
、インタフェース: Deque<E>
e
- 追加する要素true
、それ以外の場合はfalse
ClassCastException
- 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException
- 指定された要素がnullである場合IllegalArgumentException
- 指定された要素のあるプロパティが原因で、この両端キューにその要素を追加できない場合void putFirst(E e) throws InterruptedException
e
- 追加する要素InterruptedException
- 待機中に割込みが発生した場合ClassCastException
- 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException
- 指定された要素がnullである場合IllegalArgumentException
- 指定された要素のあるプロパティが原因で、この両端キューにその要素を追加できない場合void putLast(E e) throws InterruptedException
e
- 追加する要素InterruptedException
- 待機中に割込みが発生した場合ClassCastException
- 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException
- 指定された要素がnullである場合IllegalArgumentException
- 指定された要素のあるプロパティが原因で、この両端キューにその要素を追加できない場合boolean offerFirst(E e, long timeout, TimeUnit unit) throws InterruptedException
e
- 追加する要素timeout
- 処理を中止するまでの待機時間。単位はunit
unit
- timeout
パラメータの解釈方法を決定するTimeUnit
true
、空きが生じる前に指定された待機時間が経過した場合はfalse
InterruptedException
- 待機中に割込みが発生した場合ClassCastException
- 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException
- 指定された要素がnullである場合IllegalArgumentException
- 指定された要素のあるプロパティが原因で、この両端キューにその要素を追加できない場合boolean offerLast(E e, long timeout, TimeUnit unit) throws InterruptedException
e
- 追加する要素timeout
- 処理を中止するまでの待機時間。単位はunit
unit
- timeout
パラメータの解釈方法を決定するTimeUnit
true
、空きが生じる前に指定された待機時間が経過した場合はfalse
InterruptedException
- 待機中に割込みが発生した場合ClassCastException
- 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException
- 指定された要素がnullである場合IllegalArgumentException
- 指定された要素のあるプロパティが原因で、この両端キューにその要素を追加できない場合E takeFirst() throws InterruptedException
InterruptedException
- 待機中に割込みが発生した場合E takeLast() throws InterruptedException
InterruptedException
- 待機中に割込みが発生した場合E pollFirst(long timeout, TimeUnit unit) throws InterruptedException
timeout
- 処理を中止するまでの待機時間。単位はunit
unit
- timeout
パラメータの解釈方法を決定するTimeUnit
null
InterruptedException
- 待機中に割込みが発生した場合E pollLast(long timeout, TimeUnit unit) throws InterruptedException
timeout
- 処理を中止するまでの待機時間。単位はunit
unit
- timeout
パラメータの解釈方法を決定するTimeUnit
null
InterruptedException
- 待機中に割込みが発生した場合boolean removeFirstOccurrence(Object o)
o.equals(e)
となる最初の要素e
が存在する場合は、その要素を削除します。指定された要素がこの両端キューに含まれていた場合(すなわち、呼出しの結果としてこの両端キューが変更された場合)はtrue
を返します。removeFirstOccurrence
、インタフェース: Deque<E>
o
- この両端キューから削除される要素(その要素が存在する場合)true
ClassCastException
- 指定された要素のクラスが、この両端キューと互換でない場合(省略可能)NullPointerException
- 指定された要素がnullの場合(オプション)boolean removeLastOccurrence(Object o)
o.equals(e)
となる最後の要素e
が存在する場合は、その要素を削除します。指定された要素がこの両端キューに含まれていた場合(すなわち、呼出しの結果としてこの両端キューが変更された場合)はtrue
を返します。removeLastOccurrence
、インタフェース: Deque<E>
o
- この両端キューから削除される要素(その要素が存在する場合)true
ClassCastException
- 指定された要素のクラスが、この両端キューと互換でない場合(省略可能)NullPointerException
- 指定された要素がnullの場合(オプション)boolean add(E e)
true
を返し、使用可能な空き領域がその時点で存在しない場合はIllegalStateException
をスローします。容量制限のある両端キューを使用する場合、通常はoffer
を使用することをお薦めします。
このメソッドは、addLast
と同等です。
add
、インタフェース: BlockingQueue<E>
add
、インタフェース: Collection<E>
add
、インタフェース: Deque<E>
add
、インタフェース: Queue<E>
e
- 追加する要素true
(Collection.add(E)
で指定されているとおり)IllegalStateException
- 容量制限のために、この時点で要素を追加できない場合ClassCastException
- 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException
- 指定された要素がnullである場合IllegalArgumentException
- 指定された要素のあるプロパティが原因で、この両端キューにその要素を追加できない場合boolean offer(E e)
true
を返し、使用可能な空き領域がその時点で存在しない場合はfalse
を返します。容量制限のある両端キューを使用する場合、通常は、要素の挿入に失敗した場合に例外をスローするのみのadd(E)
メソッドよりもこのメソッドを使用することをお薦めします。
このメソッドは、offerLast
と同等です。
offer
、インタフェース: BlockingQueue<E>
offer
、インタフェース: Deque<E>
offer
、インタフェース: Queue<E>
e
- 追加する要素true
、それ以外の場合はfalse
ClassCastException
- 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException
- 指定された要素がnullである場合IllegalArgumentException
- 指定された要素のあるプロパティが原因で、この両端キューにその要素を追加できない場合void put(E e) throws InterruptedException
このメソッドは、putLast
と同等です。
put
、インタフェース: BlockingQueue<E>
e
- 追加する要素InterruptedException
- 待機中に割込みが発生した場合ClassCastException
- 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException
- 指定された要素がnullである場合IllegalArgumentException
- 指定された要素のあるプロパティが原因で、この両端キューにその要素を追加できない場合boolean offer(E e, long timeout, TimeUnit unit) throws InterruptedException
このメソッドは、offerLast
と同等です。
offer
、インタフェース: BlockingQueue<E>
e
- 追加する要素timeout
- 処理を中止するまでの待機時間。単位はunit
unit
- timeout
パラメータの解釈方法を決定するTimeUnit
true
、それ以外の場合はfalse
InterruptedException
- 待機中に割込みが発生した場合ClassCastException
- 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException
- 指定された要素がnullである場合IllegalArgumentException
- 指定された要素のあるプロパティが原因で、この両端キューにその要素を追加できない場合E remove()
poll
メソッドと異なります。
このメソッドは、removeFirst
と同等です。
E poll()
null
を返します。
このメソッドは、Deque.pollFirst()
と同等です。
E take() throws InterruptedException
このメソッドは、takeFirst
と同等です。
take
、インタフェース: BlockingQueue<E>
InterruptedException
- 待機中に割込みが発生した場合E poll(long timeout, TimeUnit unit) throws InterruptedException
このメソッドは、pollFirst
と同等です。
poll
、インタフェース: BlockingQueue<E>
timeout
- 処理を中止するまでの待機時間。単位はunit
unit
- timeout
パラメータの解釈方法を決定するTimeUnit
null
InterruptedException
- 待機中に割込みが発生した場合E element()
E peek()
null
を返します。
このメソッドは、peekFirst
と同等です。
boolean remove(Object o)
o.equals(e)
となる最初の要素e
が存在する場合は、その要素を削除します。指定された要素がこの両端キューに含まれていた場合(すなわち、呼出しの結果としてこの両端キューが変更された場合)はtrue
を返します。
このメソッドは、removeFirstOccurrence
と同等です。
remove
、インタフェース: BlockingQueue<E>
remove
、インタフェース: Collection<E>
remove
、インタフェース: Deque<E>
o
- この両端キューから削除される要素(その要素が存在する場合)true
ClassCastException
- 指定された要素のクラスが、この両端キューと互換でない場合(省略可能)NullPointerException
- 指定された要素がnullの場合(オプション)boolean contains(Object o)
true
を返します。つまり、この両端キューに、o.equals(e)
となる要素e
が1つ以上含まれている場合にだけtrue
を返します。contains
、インタフェース: BlockingQueue<E>
contains
、インタフェース: Collection<E>
contains
、インタフェース: Deque<E>
o
- この両端キューに含まれているかどうかを調べるオブジェクトtrue
ClassCastException
- 指定された要素のクラスが、この両端キューと互換でない場合(省略可能)NullPointerException
- 指定された要素がnullの場合(オプション)int size()
void push(E e)
IllegalStateException
をスローします。
このメソッドは、addFirst
と同等です。
push
、インタフェース: Deque<E>
e
- プッシュする要素IllegalStateException
- 容量制限のために、この時点で要素を追加できない場合ClassCastException
- 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException
- 指定された要素がnullである場合IllegalArgumentException
- 指定された要素のあるプロパティが原因で、この両端キューにその要素を追加できない場合 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.