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, remainingCapacitydescendingIterator, getFirst, getLast, peekFirst, peekLast, pollFirst, pollLast, pop, removeFirst, removeLastaddAll, clear, containsAll, equals, hashCode, isEmpty, parallelStream, removeAll, removeIf, retainAll, spliterator, stream, toArray, toArrayvoid 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、それ以外の場合はfalseClassCastException - 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException - 指定された要素がnullである場合IllegalArgumentException - 指定された要素のあるプロパティが原因で、この両端キューにその要素を追加できない場合boolean offerLast(E e)
trueを返し、使用可能な空き領域がその時点で存在しない場合はfalseを返します。 容量制限のある両端キューを使用する場合、通常は、要素の挿入に失敗した場合に例外をスローするのみのaddLastメソッドよりもこのメソッドを使用することをお薦めします。 offerLast、インタフェースDeque<E>e - 追加する要素true、それ以外の場合はfalseClassCastException - 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合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 - 処理を中止するまでの待機時間。単位はunitunit - timeoutパラメータの解釈方法を決定するTimeUnittrue、空きが生じる前に指定された待機時間が経過した場合はfalseInterruptedException - 待機中に割込みが発生した場合ClassCastException - 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException - 指定された要素がnullである場合IllegalArgumentException - 指定された要素のあるプロパティが原因で、この両端キューにその要素を追加できない場合boolean offerLast(E e, long timeout, TimeUnit unit) throws InterruptedException
e - 追加する要素timeout - 処理を中止するまでの待機時間。単位はunitunit - timeoutパラメータの解釈方法を決定するTimeUnittrue、空きが生じる前に指定された待機時間が経過した場合はfalseInterruptedException - 待機中に割込みが発生した場合ClassCastException - 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException - 指定された要素がnullである場合IllegalArgumentException - 指定された要素のあるプロパティが原因で、この両端キューにその要素を追加できない場合E takeFirst() throws InterruptedException
InterruptedException - 待機中に割込みが発生した場合E takeLast() throws InterruptedException
InterruptedException - 待機中に割込みが発生した場合E pollFirst(long timeout, TimeUnit unit) throws InterruptedException
timeout - 処理を中止するまでの待機時間。単位はunitunit - timeoutパラメータの解釈方法を決定するTimeUnitnullInterruptedException - 待機中に割込みが発生した場合E pollLast(long timeout, TimeUnit unit) throws InterruptedException
timeout - 処理を中止するまでの待機時間。単位はunitunit - timeoutパラメータの解釈方法を決定するTimeUnitnullInterruptedException - 待機中に割込みが発生した場合boolean removeFirstOccurrence(Object o)
o.equals(e)となる最初の要素eが存在する場合は、その要素を削除します。 指定された要素がこの両端キューに含まれていた場合(すなわち、呼出しの結果としてこの両端キューが変更された場合)はtrueを返します。 removeFirstOccurrence、インタフェースDeque<E>o - この両端キューから削除される要素(その要素が存在する場合)trueClassCastException - 指定された要素のクラスが、この両端キューと互換でない場合(省略可能)NullPointerException - 指定された要素がnullの場合(オプション)boolean removeLastOccurrence(Object o)
o.equals(e)となる最後の要素eが存在する場合は、その要素を削除します。 指定された要素がこの両端キューに含まれていた場合(すなわち、呼出しの結果としてこの両端キューが変更された場合)はtrueを返します。 removeLastOccurrence、インタフェースDeque<E>o - この両端キューから削除される要素(その要素が存在する場合)trueClassCastException - 指定された要素のクラスが、この両端キューと互換でない場合(省略可能)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、それ以外の場合はfalseClassCastException - 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合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 - 処理を中止するまでの待機時間。単位はunitunit - timeoutパラメータの解釈方法を決定するTimeUnittrue、それ以外の場合はfalseInterruptedException - 待機中に割込みが発生した場合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 - 処理を中止するまでの待機時間。単位はunitunit - timeoutパラメータの解釈方法を決定するTimeUnitnullInterruptedException - 待機中に割込みが発生した場合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 - この両端キューから削除される要素(その要素が存在する場合)trueClassCastException - 指定された要素のクラスが、この両端キューと互換でない場合(省略可能)NullPointerException - 指定された要素がnullの場合(オプション)boolean contains(Object o)
trueを返します。 つまり、この両端キューに、o.equals(e)となる要素eが1つ以上含まれている場合にだけtrueを返します。 contains、インタフェースBlockingQueue<E>contains、インタフェースCollection<E>contains、インタフェースDeque<E>o - この両端キューに含まれているかどうかを調べるオブジェクトtrueClassCastException - 指定された要素のクラスが、この両端キューと互換でない場合(省略可能)NullPointerException - 指定された要素がnullの場合(オプション)int size()
void push(E e)
IllegalStateExceptionをスローします。
 このメソッドは、addFirstと同等です。
push、インタフェースDeque<E>e - プッシュする要素IllegalStateException - 容量制限のために、この時点で要素を追加できない場合ClassCastException - 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException - 指定された要素がnullである場合IllegalArgumentException - 指定された要素のあるプロパティが原因で、この両端キューにその要素を追加できない場合 バグまたは機能を送信 
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。 
 Copyright © 1993, 2025, Oracle and/or its affiliates.  All rights reserved.  Use is subject to license terms.  Documentation Redistribution Policyも参照してください。