|
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>
内の addFirst
e
- 追加する要素
IllegalStateException
- 容量制限のために要素をその時点で追加できない場合
ClassCastException
- 指定された要素のクラスが原因で、この両端キューに要素を追加できない場合
NullPointerException
- 指定された要素が null である場合
IllegalArgumentException
- 指定された要素のあるプロパティーが原因で、この両端キューに要素を追加できない場合void addLast(E e)
offerLast
を使用することをお勧めします。
Deque<E>
内の addLast
e
- 追加する要素
IllegalStateException
- 容量制限のために要素をその時点で追加できない場合
ClassCastException
- 指定された要素のクラスが原因で、この両端キューに要素を追加できない場合
NullPointerException
- 指定された要素が null である場合
IllegalArgumentException
- 指定された要素のあるプロパティーが原因で、この両端キューに要素を追加できない場合boolean offerFirst(E e)
addFirst
メソッドよりもこのメソッドを使用することをお勧めします。
Deque<E>
内の offerFirst
e
- 追加する要素
ClassCastException
- 指定された要素のクラスが原因で、この両端キューに要素を追加できない場合
NullPointerException
- 指定された要素が null である場合
IllegalArgumentException
- 指定された要素のあるプロパティーが原因で、この両端キューに要素を追加できない場合boolean offerLast(E e)
addLast
メソッドよりもこのメソッドを使用することをお勧めします。
Deque<E>
内の offerLast
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 パラメータの解釈方法を決定する 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>
内の removeFirstOccurrence
o
- この両端キューから削除される要素 (その要素が存在する場合)
ClassCastException
- 指定された要素のクラスが、この両端キューと互換でない場合 (省略可能)
NullPointerException
- 指定された要素が null である場合 (省略可能)boolean removeLastOccurrence(Object o)
Deque<E>
内の removeLastOccurrence
o
- この両端キューから削除される要素 (その要素が存在する場合)
ClassCastException
- 指定された要素のクラスが、この両端キューと互換でない場合 (省略可能)
NullPointerException
- 指定された要素が null である場合 (省略可能)boolean add(E e)
offer
を使用することをお勧めします。
このメソッドは、addLast
と同等です。
BlockingQueue<E>
内の add
Collection<E>
内の add
Deque<E>
内の add
Queue<E>
内の add
e
- 追加する要素
Collection.add(E)
で指定されているとおり)
IllegalStateException
- 容量制限のために要素をその時点で追加できない場合
ClassCastException
- 指定された要素のクラスが原因で、この両端キューに要素を追加できない場合
NullPointerException
- 指定された要素が null である場合
IllegalArgumentException
- 指定された要素のあるプロパティーが原因で、この両端キューに要素を追加できない場合boolean offer(E e)
add(E)
メソッドよりもこのメソッドを使用することをお勧めします。
このメソッドは、offerLast
と同等です。
BlockingQueue<E>
内の offer
Deque<E>
内の offer
Queue<E>
内の offer
e
- 追加する要素
ClassCastException
- 指定された要素のクラスが原因で、この両端キューに要素を追加できない場合
NullPointerException
- 指定された要素が null である場合
IllegalArgumentException
- 指定された要素のあるプロパティーが原因で、この両端キューに要素を追加できない場合void put(E e) throws InterruptedException
このメソッドは、putLast
と同等です。
BlockingQueue<E>
内の put
e
- 追加する要素
InterruptedException
- 待機中に割り込みが発生した場合
ClassCastException
- 指定された要素のクラスが原因で、この両端キューに要素を追加できない場合
NullPointerException
- 指定された要素が null である場合
IllegalArgumentException
- 指定された要素のあるプロパティーが原因で、この両端キューに要素を追加できない場合boolean offer(E e, long timeout, TimeUnit unit) throws InterruptedException
このメソッドは、offerLast
と同等です。
BlockingQueue<E>
内の offer
e
- 追加する要素timeout
- 処理を中止するまでの待機時間。単位は unitunit
- timeout パラメータの解釈方法を決定する TimeUnit
InterruptedException
- 待機中に割り込みが発生した場合
ClassCastException
- 指定された要素のクラスが原因で、この両端キューに要素を追加できない場合
NullPointerException
- 指定された要素が null である場合
IllegalArgumentException
- 指定された要素のあるプロパティーが原因で、この両端キューに要素を追加できない場合E remove()
poll
と異なります。
このメソッドは、removeFirst
と同等です。
Deque<E>
内の remove
Queue<E>
内の remove
NoSuchElementException
- 両端キューが空の場合E poll()
このメソッドは、Deque.pollFirst()
と同等です。
Deque<E>
内の poll
Queue<E>
内の poll
E take() throws InterruptedException
このメソッドは、takeFirst
と同等です。
BlockingQueue<E>
内の take
InterruptedException
- 待機中に割り込みが発生した場合E poll(long timeout, TimeUnit unit) throws InterruptedException
このメソッドは、pollFirst
と同等です。
BlockingQueue<E>
内の poll
timeout
- 処理を中止するまでの待機時間。単位は unitunit
- timeout パラメータの解釈方法を決定する TimeUnit
InterruptedException
- 待機中に割り込みが発生した場合E element()
peek
と異なります。
このメソッドは、getFirst
と同等です。
Deque<E>
内の element
Queue<E>
内の element
NoSuchElementException
- 両端キューが空の場合E peek()
このメソッドは、peekFirst
と同等です。
Deque<E>
内の peek
Queue<E>
内の peek
boolean remove(Object o)
このメソッドは、removeFirstOccurrence
と同等です。
BlockingQueue<E>
内の remove
Collection<E>
内の remove
Deque<E>
内の remove
o
- この両端キューから削除される要素 (その要素が存在する場合)
ClassCastException
- 指定された要素のクラスが、この両端キューと互換でない場合 (省略可能)
NullPointerException
- 指定された要素が null である場合 (省略可能)boolean contains(Object o)
BlockingQueue<E>
内の contains
Collection<E>
内の contains
Deque<E>
内の contains
o
- この両端キューに含まれているかどうかを調べるオブジェクト
ClassCastException
- 指定された要素のクラスが、この両端キューと互換でない場合 (省略可能)
NullPointerException
- 指定された要素が null である場合 (省略可能)int size()
Collection<E>
内の size
Deque<E>
内の size
Iterator<E> iterator()
Collection<E>
内の iterator
Deque<E>
内の iterator
Iterable<E>
内の iterator
void push(E e)
このメソッドは、addFirst
と同等です。
Deque<E>
内の push
e
- プッシュする要素
IllegalStateException
- 容量制限のために要素をその時点で追加できない場合
ClassCastException
- 指定された要素のクラスが原因で、この両端キューに要素を追加できない場合
NullPointerException
- 指定された要素が null である場合
IllegalArgumentException
- 指定された要素のあるプロパティーが原因で、この両端キューに要素を追加できない場合
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。