|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
E - コレクション内に存在する要素の型public interface BlockingDeque<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)
指定された要素を、この両端キューで表されるキュー (つまり、この両端キューの末尾) に、容量制限に違反することなしにすぐに挿入できる場合には、そうします。 |
void |
addFirst(E e)
容量制限に違反することなく指定された要素をこの両端キューの先頭にすぐに挿入できる場合には、そうします。 |
void |
addLast(E e)
容量制限に違反することなしに指定された要素をこの両端キューの末尾にすぐに挿入できる場合には、そうします。 |
boolean |
contains(Object o)
指定された要素がこの両端キューに含まれている場合に true を返します。 |
E |
element()
この両端キューによって表されるキューの先頭 (つまり、この両端キューの最初の要素) を取得しますが、削除しません。 |
Iterator<E> |
iterator()
この両端キュー内の要素を適切な順序で繰り返し処理する反復子を返します。 |
boolean |
offer(E e)
指定された要素を、この両端キューで表されるキュー (つまり、この両端キューの末尾) に、容量制限に違反することなしにすぐに挿入できる場合には、そうします。 |
boolean |
offer(E e,
long timeout,
TimeUnit unit)
指定された要素をこの両端キューで表されるキュー (つまり、この両端キューの末尾) に挿入します。 |
boolean |
offerFirst(E e)
容量制限に違反することなしに指定された要素をこの両端キューの先頭にすぐに挿入できる場合には、そうします。 |
boolean |
offerFirst(E e,
long timeout,
TimeUnit unit)
指定された要素をこの両端キューの先頭に挿入します。 |
boolean |
offerLast(E e)
容量制限に違反することなしに指定された要素をこの両端キューの末尾にすぐに挿入できる場合には、そうします。 |
boolean |
offerLast(E e,
long timeout,
TimeUnit unit)
指定された要素をこの両端キューの末尾に挿入します。 |
E |
peek()
この両端キューによって表されるキューの先頭 (つまり、この両端キューの最初の要素) を取得しますが、削除しません。 |
E |
poll()
この両端キューによって表されるキューの先頭 (つまり、この両端キューの最初の要素) を取得して削除します。 |
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()
この両端キューの最後の要素を取得して削除します。 |
| インタフェース java.util.concurrent.BlockingQueue から継承されたメソッド |
|---|
drainTo, drainTo, remainingCapacity |
| インタフェース java.util.Deque から継承されたメソッド |
|---|
descendingIterator, getFirst, getLast, peekFirst, peekLast, pollFirst, pollLast, pop, removeFirst, removeLast |
| インタフェース java.util.Collection から継承されたメソッド |
|---|
addAll, clear, containsAll, equals, hashCode, isEmpty, removeAll, retainAll, toArray, toArray |
| メソッドの詳細 |
|---|
void addFirst(E e)
offerFirst を使用することをお勧めします。
Deque<E> 内の addFirste - 追加する要素
IllegalStateException - 容量制限が原因でこの時点で要素を追加できない場合
ClassCastException - 指定された要素のクラスが原因で、この両端キューに要素を追加できない場合
NullPointerException - 指定された要素が null である場合
IllegalArgumentException - 指定された要素のあるプロパティーが原因で、この両端キューに要素を追加できない場合void addLast(E e)
offerLast を使用することをお勧めします。
Deque<E> 内の addLaste - 追加する要素
IllegalStateException - 容量制限が原因でこの時点で要素を追加できない場合
ClassCastException - 指定された要素のクラスが原因で、この両端キューに要素を追加できない場合
NullPointerException - 指定された要素が null である場合
IllegalArgumentException - 指定された要素のあるプロパティーが原因で、この両端キューに要素を追加できない場合boolean offerFirst(E e)
addFirst メソッドよりもこのメソッドを使用することをお勧めします。
Deque<E> 内の offerFirste - 追加する要素
ClassCastException - 指定された要素のクラスが原因で、この両端キューに要素を追加できない場合
NullPointerException - 指定された要素が null である場合
IllegalArgumentException - 指定された要素のあるプロパティーが原因で、この両端キューに要素を追加できない場合boolean offerLast(E e)
addLast メソッドよりもこのメソッドを使用することをお勧めします。
Deque<E> 内の offerLaste - 追加する要素
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 パラメータの解釈方法を決定する TimeUnit
InterruptedException - 待機中に割り込みが発生した場合
ClassCastException - 指定された要素のクラスが原因で、両端キューに要素を追加できない場合
NullPointerException - 指定された要素が null である場合
IllegalArgumentException - 指定された要素のあるプロパティーが原因で、この両端キューに要素を追加できない場合
boolean offerLast(E e,
long timeout,
TimeUnit unit)
throws InterruptedException
e - 追加する要素timeout - 処理を中止するまでの待機時間。単位は unitunit - timeout パラメータの解釈方法を決定する TimeUnit
InterruptedException - 待機中に割り込みが発生した場合
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 パラメータの解釈方法を決定する TimeUnit
InterruptedException - 待機中に割り込みが発生した場合
E pollLast(long timeout,
TimeUnit unit)
throws InterruptedException
timeout - 処理を中止するまでの待機時間。単位は unitunit - timeout パラメータの解釈方法を決定する TimeUnit
InterruptedException - 待機中に割り込みが発生した場合boolean removeFirstOccurrence(Object o)
Deque<E> 内の removeFirstOccurrenceo - この両端キューから削除される要素 (その要素が存在する場合)
ClassCastException - 指定された要素のクラスが、この両端キューと互換でない場合 (省略可能)
NullPointerException - 指定された要素が null である場合 (省略可能)boolean removeLastOccurrence(Object o)
Deque<E> 内の removeLastOccurrenceo - この両端キューから削除される要素 (その要素が存在する場合)
ClassCastException - 指定された要素のクラスが、この両端キューと互換でない場合 (省略可能)
NullPointerException - 指定された要素が null である場合 (省略可能)boolean add(E e)
offer を使用することをお勧めします。
このメソッドは、addLast と同等です。
BlockingQueue<E> 内の addCollection<E> 内の addDeque<E> 内の addQueue<E> 内の adde - 追加する要素
Collection.add(E) で指定されているとおり)
IllegalStateException - 容量制限が原因でこの時点で要素を追加できない場合
ClassCastException - 指定された要素のクラスが原因で、両端キューに要素を追加できない場合
NullPointerException - 指定された要素が null である場合
IllegalArgumentException - 指定された要素のあるプロパティーが原因で、この両端キューに要素を追加できない場合boolean offer(E e)
add(E) メソッドよりもこのメソッドを使用することをお勧めします。
このメソッドは、offerLast と同等です。
BlockingQueue<E> 内の offerDeque<E> 内の offerQueue<E> 内の offere - 追加する要素
ClassCastException - 指定された要素のクラスが原因で、両端キューに要素を追加できない場合
NullPointerException - 指定された要素が null である場合
IllegalArgumentException - 指定された要素のあるプロパティーが原因で、この両端キューに要素を追加できない場合
void put(E e)
throws InterruptedException
このメソッドは、putLast と同等です。
BlockingQueue<E> 内の pute - 追加する要素
InterruptedException - 待機中に割り込みが発生した場合
ClassCastException - 指定された要素のクラスが原因で、両端キューに要素を追加できない場合
NullPointerException - 指定された要素が null である場合
IllegalArgumentException - 指定された要素のあるプロパティーが原因で、この両端キューに要素を追加できない場合
boolean offer(E e,
long timeout,
TimeUnit unit)
throws InterruptedException
このメソッドは、offerLast と同等です。
BlockingQueue<E> 内の offere - 追加する要素timeout - 処理を中止するまでの待機時間。単位は unitunit - timeout パラメータの解釈方法を決定する TimeUnit
InterruptedException - 待機中に割り込みが発生した場合
ClassCastException - 指定された要素のクラスが原因で、両端キューに要素を追加できない場合
NullPointerException - 指定された要素が null である場合
IllegalArgumentException - 指定された要素のあるプロパティーが原因で、この両端キューに要素を追加できない場合E remove()
poll と異なります。
このメソッドは、removeFirst と同等です。
Deque<E> 内の removeQueue<E> 内の removeNoSuchElementException - この両端キューが空の場合E poll()
このメソッドは、Deque.pollFirst() と同等です。
Deque<E> 内の pollQueue<E> 内の poll
E take()
throws InterruptedException
このメソッドは、takeFirst と同等です。
BlockingQueue<E> 内の takeInterruptedException - 待機中に割り込みが発生した場合
E poll(long timeout,
TimeUnit unit)
throws InterruptedException
このメソッドは、pollFirst と同等です。
BlockingQueue<E> 内の polltimeout - 処理を中止するまでの待機時間。単位は unitunit - timeout パラメータの解釈方法を決定する TimeUnit
InterruptedException - 待機中に割り込みが発生した場合E element()
peek と異なります。
このメソッドは、getFirst と同等です。
Deque<E> 内の elementQueue<E> 内の elementNoSuchElementException - この両端キューが空の場合E peek()
このメソッドは、peekFirst と同等です。
Deque<E> 内の peekQueue<E> 内の peekboolean remove(Object o)
このメソッドは、removeFirstOccurrence と同等です。
BlockingQueue<E> 内の removeCollection<E> 内の removeDeque<E> 内の removeo - この両端キューから削除される要素 (その要素が存在する場合)
ClassCastException - 指定された要素のクラスが、この両端キューと互換でない場合 (省略可能)
NullPointerException - 指定された要素が null である場合 (省略可能)boolean contains(Object o)
BlockingQueue<E> 内の containsCollection<E> 内の containsDeque<E> 内の containso - この両端キューに含まれているかどうかを調べるオブジェクト
ClassCastException - 指定された要素のクラスが、この両端キューと互換でない場合 (省略可能)
NullPointerException - 指定された要素が null である場合 (省略可能)int size()
Collection<E> 内の sizeDeque<E> 内の sizeIterator<E> iterator()
Collection<E> 内の iteratorDeque<E> 内の iteratorIterable<E> 内の iteratorvoid push(E e)
このメソッドは、addFirst と同等です。
Deque<E> 内の pushe - プッシュする要素
IllegalStateException - 容量制限が原因でこの時点で要素を追加できない場合
ClassCastException - 指定された要素のクラスが原因で、この両端キューに要素を追加できない場合
NullPointerException - 指定された要素が null である場合
IllegalArgumentException - 指定された要素のあるプロパティーが原因で、この両端キューに要素を追加できない場合
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。