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)
この両端キューで表されるスタックに要素を入れます。
|
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
void addFirst(E e)
offerFirst
メソッドを使用することをお勧めします。addFirst
、インタフェース: Deque<E>
e
- 追加する要素IllegalStateException
- 容量制限のために、この時点で要素を追加できない場合ClassCastException
- 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException
- 指定された要素が null である場合IllegalArgumentException
- 指定された要素のあるプロパティーが原因で、この両端キューにその要素を追加できない場合void addLast(E e)
offerLast
メソッドを使用することをお勧めします。addLast
、インタフェース: Deque<E>
e
- 追加する要素IllegalStateException
- 容量制限のために、この時点で要素を追加できない場合ClassCastException
- 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException
- 指定された要素が null である場合IllegalArgumentException
- 指定された要素のあるプロパティーが原因で、この両端キューにその要素を追加できない場合boolean offerFirst(E e)
addFirst
メソッドよりもこのメソッドを使用することをお勧めします。offerFirst
、インタフェース: Deque<E>
e
- 追加する要素ClassCastException
- 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException
- 指定された要素が null である場合IllegalArgumentException
- 指定された要素のあるプロパティーが原因で、この両端キューにその要素を追加できない場合boolean offerLast(E e)
addLast
メソッドよりもこのメソッドを使用することをお勧めします。offerLast
、インタフェース: Deque<E>
e
- 追加する要素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
- 処理を中止するまでの待機時間。単位は unitunit
- timeout パラメータの解釈方法を決定する TimeUnitInterruptedException
- 待機中に割り込みが発生した場合ClassCastException
- 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException
- 指定された要素が null である場合IllegalArgumentException
- 指定された要素のあるプロパティーが原因で、この両端キューにその要素を追加できない場合boolean offerLast(E e, long timeout, TimeUnit unit) throws InterruptedException
e
- 追加する要素timeout
- 処理を中止するまでの待機時間。単位は unitunit
- timeout パラメータの解釈方法を決定する TimeUnitInterruptedException
- 待機中に割り込みが発生した場合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 パラメータの解釈方法を決定する TimeUnitInterruptedException
- 待機中に割り込みが発生した場合E pollLast(long timeout, TimeUnit unit) throws InterruptedException
timeout
- 処理を中止するまでの待機時間。単位は unitunit
- timeout パラメータの解釈方法を決定する TimeUnitInterruptedException
- 待機中に割り込みが発生した場合boolean removeFirstOccurrence(Object o)
removeFirstOccurrence
、インタフェース: Deque<E>
o
- この両端キューから削除される要素 (その要素が存在する場合)ClassCastException
- 指定された要素のクラスが、この両端キューと互換でない場合 (省略可能)NullPointerException
- 指定された要素が null の場合 (オプション)boolean removeLastOccurrence(Object o)
removeLastOccurrence
、インタフェース: Deque<E>
o
- この両端キューから削除される要素 (その要素が存在する場合)ClassCastException
- 指定された要素のクラスが、この両端キューと互換でない場合 (省略可能)NullPointerException
- 指定された要素が null の場合 (オプション)boolean add(E e)
offer
メソッドを使用することをお勧めします。
このメソッドは、addLast
と同等です。
add
、インタフェース: BlockingQueue<E>
add
、インタフェース: Collection<E>
add
、インタフェース: Deque<E>
add
、インタフェース: Queue<E>
e
- 追加する要素Collection.add(E)
で指定されているとおり)IllegalStateException
- 容量制限のために、この時点で要素を追加できない場合ClassCastException
- 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException
- 指定された要素が null である場合IllegalArgumentException
- 指定された要素のあるプロパティーが原因で、この両端キューにその要素を追加できない場合boolean offer(E e)
add(E)
メソッドよりもこのメソッドを使用することをお勧めします。
このメソッドは、offerLast
と同等です。
offer
、インタフェース: BlockingQueue<E>
offer
、インタフェース: Deque<E>
offer
、インタフェース: Queue<E>
e
- 追加する要素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
- 処理を中止するまでの待機時間。単位は unitunit
- timeout パラメータの解釈方法を決定する TimeUnitInterruptedException
- 待機中に割り込みが発生した場合ClassCastException
- 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException
- 指定された要素が null である場合IllegalArgumentException
- 指定された要素のあるプロパティーが原因で、この両端キューにその要素を追加できない場合E remove()
poll
メソッドと異なります。
このメソッドは、removeFirst
と同等です。
E poll()
このメソッドは、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 パラメータの解釈方法を決定する TimeUnitInterruptedException
- 待機中に割り込みが発生した場合E element()
E peek()
このメソッドは、peekFirst
と同等です。
boolean remove(Object o)
このメソッドは、removeFirstOccurrence
と同等です。
remove
、インタフェース: BlockingQueue<E>
remove
、インタフェース: Collection<E>
remove
、インタフェース: Deque<E>
o
- この両端キューから削除される要素 (その要素が存在する場合)ClassCastException
- 指定された要素のクラスが、この両端キューと互換でない場合 (省略可能)NullPointerException
- 指定された要素が null の場合 (オプション)boolean contains(Object o)
contains
、インタフェース: BlockingQueue<E>
contains
、インタフェース: Collection<E>
contains
、インタフェース: Deque<E>
o
- この両端キューに含まれているかどうかを調べるオブジェクトClassCastException
- 指定された要素のクラスが、この両端キューと互換でない場合 (省略可能)NullPointerException
- 指定された要素が null の場合 (オプション)int size()
void push(E e)
このメソッドは、addFirst
と同等です。
push
、インタフェース: Deque<E>
e
- プッシュする要素IllegalStateException
- 容量制限のために、この時点で要素を追加できない場合ClassCastException
- 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException
- 指定された要素が null である場合IllegalArgumentException
- 指定された要素のあるプロパティーが原因で、この両端キューにその要素を追加できない場合 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.