JavaTM Platform
Standard Ed. 6

java.util.concurrent
クラス LinkedBlockingDeque<E>

java.lang.Object
  上位を拡張 java.util.AbstractCollection<E>
      上位を拡張 java.util.AbstractQueue<E>
          上位を拡張 java.util.concurrent.LinkedBlockingDeque<E>
型パラメータ:
E - コレクション内に存在する要素の型
すべての実装されたインタフェース:
Serializable, Iterable<E>, Collection<E>, BlockingDeque<E>, BlockingQueue<E>, Deque<E>, Queue<E>

public class LinkedBlockingDeque<E>
extends AbstractQueue<E>
implements BlockingDeque<E>, Serializable

リンクノードに基づく、任意のバウンド形式のブロッキング両端キューです。

任意の容量制限のあるコンストラクタ引数が、過剰な展開を防ぐために機能します。容量は、指定しない場合は Integer.MAX_VALUE と同じです。リンクノードは、両端キューが容量を超えないかぎり挿入のたびに動的に作成されます。

ほとんどのオペレーションは、ブロックにかかる時間を無視すると、一定の時間で実行されます。例外は、removeremoveFirstOccurrenceremoveLastOccurrencecontainsiterator.remove()、および一括オペレーションで、これらはすべて要素の数に比例する時間で実行されます。

このクラスとその反復子は、Collection および Iterator インタフェースの「オプション」メソッドすべてを実装します。

このクラスは、Java Collections Framework のメンバーです。

導入されたバージョン:
1.6
関連項目:
直列化された形式

コンストラクタの概要
LinkedBlockingDeque()
          容量 Integer.MAX_VALUELinkedBlockingDeque を作成します。
LinkedBlockingDeque(Collection<? extends E> c)
          容量 Integer.MAX_VALUE で、指定されたコレクションの要素を初期状態で含む (要素はコレクションの反復子のトラバーサル順に追加) LinkedBlockingDeque を作成します。
LinkedBlockingDeque(int capacity)
          指定された固定容量で LinkedBlockingDeque を作成します。
 
メソッドの概要
 boolean add(E e)
          容量制限に違反しないかぎり、指定された要素をこの両端キューの末尾に挿入します。
 void addFirst(E e)
          容量制限に違反することなく指定された要素をこの両端キューの先頭にすぐに挿入できる場合には、そうします。
 void addLast(E e)
          容量制限に違反することなしに指定された要素をこの両端キューの末尾にすぐに挿入できる場合には、そうします。
 void clear()
          すべての要素をこの両端キューから原子的に削除します。
 boolean contains(Object o)
          指定された要素がこの両端キューに含まれている場合に true を返します。
 Iterator<E> descendingIterator()
          この両端キュー内の要素を逆順で繰り返し処理する反復子を返します。
 int drainTo(Collection<? super E> c)
          このキューから利用可能なすべての要素を削除し、それらを指定されたコレクションに追加します。
 int drainTo(Collection<? super E> c, int maxElements)
          指定された数以内の利用可能な要素をこのキューから削除し、指定されたコレクションに追加します。
 E element()
          この両端キューで表されるキューの先頭を取得しますが、削除しません。
 E getFirst()
          この両端キューの最初の要素を取得しますが、削除はしません。
 E getLast()
          この両端キューの最後の要素を取得しますが、削除はしません。
 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 peekFirst()
          この両端キューの最初の要素を取得しますが、削除しません。
 E peekLast()
          この両端キューの最後の要素を取得しますが、削除しません。
 E poll()
          この両端キューによって表されるキューの先頭 (つまり、この両端キューの最初の要素) を取得して削除します。
 E poll(long timeout, TimeUnit unit)
          この両端キューによって表されるキューの先頭 (つまり、この両端キューの最初の要素) を取得して削除します。
 E pollFirst()
          この両端キューの最初の要素を取得および削除します。
 E pollFirst(long timeout, TimeUnit unit)
          この両端キューの最初の要素を取得して削除します。
 E pollLast()
          この両端キューの最後の要素を取得および削除します。
 E pollLast(long timeout, TimeUnit unit)
          この両端キューの最後の要素を取得して削除します。
 E pop()
          この両端キューで表されるスタックに要素をポップします。
 void push(E e)
          この両端キューで表されるスタックに要素を入れます。
 void put(E e)
          指定された要素をこの両端キューで表されるキュー (つまり、この両端キューの末尾) に挿入します。
 void putFirst(E e)
          指定された要素をこの両端キューの先頭に挿入します。
 void putLast(E e)
          指定された要素をこの両端キューの末尾に挿入します。
 int remainingCapacity()
          理想的な状態 (メモリーやリソースの制限がない状態) で、この両端キューがブロックせずに受け入れることができる追加要素の数を返します。
 E remove()
          この両端キューで表されるキューの先頭を取得して削除します。
 boolean remove(Object o)
          指定された要素のうち最初に出現したものを、この両端キューから削除します。
 E removeFirst()
          この両端キューの最初の要素を取得して削除します。
 boolean removeFirstOccurrence(Object o)
          指定された要素のうち最初に出現したものを、この両端キューから削除します。
 E removeLast()
          この両端キューの最後の要素を取得して削除します。
 boolean removeLastOccurrence(Object o)
          指定された要素のうち最後に出現したものを、この両端キューから削除します。
 int size()
          この両端キュー内の要素の数を返します。
 E take()
          この両端キューによって表されるキューの先頭 (つまり、この両端キューの最初の要素) を取得して削除します。
 E takeFirst()
          この両端キューの最初の要素を取得して削除します。
 E takeLast()
          この両端キューの最後の要素を取得して削除します。
 Object[] toArray()
          両端キュー内のすべての要素を適切な順序 (最初の要素から最後の要素へ) で格納している配列を返します。
<T> T[]
toArray(T[] a)
          両端キュー内のすべての要素を適切な順序で含む配列を返します。
 String toString()
          このコレクションの文字列表現を返します。
 
クラス java.util.AbstractQueue から継承されたメソッド
addAll
 
クラス java.util.AbstractCollection から継承されたメソッド
containsAll, isEmpty, removeAll, retainAll
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
インタフェース java.util.Collection から継承されたメソッド
addAll, containsAll, equals, hashCode, isEmpty, removeAll, retainAll
 

コンストラクタの詳細

LinkedBlockingDeque

public LinkedBlockingDeque()
容量 Integer.MAX_VALUELinkedBlockingDeque を作成します。


LinkedBlockingDeque

public LinkedBlockingDeque(int capacity)
指定された固定容量で LinkedBlockingDeque を作成します。

パラメータ:
capacity - この両端キューの容量
例外:
IllegalArgumentException - capacity が 1 未満の場合

LinkedBlockingDeque

public LinkedBlockingDeque(Collection<? extends E> c)
容量 Integer.MAX_VALUE で、指定されたコレクションの要素を初期状態で含む (要素はコレクションの反復子のトラバーサル順に追加) LinkedBlockingDeque を作成します。

パラメータ:
c - 初期状態で含む要素のコレクション
例外:
NullPointerException - 指定されたコレクション、またはその要素のいずれかが null の場合
メソッドの詳細

addFirst

public void addFirst(E e)
インタフェース BlockingDeque の記述:
容量制限に違反することなく指定された要素をこの両端キューの先頭にすぐに挿入できる場合には、そうします。使用可能な空き領域がその時点で存在しない場合は IllegalStateException をスローします。容量制限のある両端キューを使用する場合、通常は offerFirst を使用することをお勧めします。

定義:
インタフェース BlockingDeque<E> 内の addFirst
定義:
インタフェース Deque<E> 内の addFirst
パラメータ:
e - 追加する要素
例外:
IllegalStateException - 容量制限が原因でこの時点で要素を追加できない場合
NullPointerException - 指定された要素が null である場合

addLast

public void addLast(E e)
インタフェース BlockingDeque の記述:
容量制限に違反することなしに指定された要素をこの両端キューの末尾にすぐに挿入できる場合には、そうします。使用可能な空き領域がその時点で存在しない場合は IllegalStateException をスローします。容量制限のある両端キューを使用する場合、通常は offerLast を使用することをお勧めします。

定義:
インタフェース BlockingDeque<E> 内の addLast
定義:
インタフェース Deque<E> 内の addLast
パラメータ:
e - 追加する要素
例外:
IllegalStateException - 容量制限が原因でこの時点で要素を追加できない場合
NullPointerException - 指定された要素が null である場合

offerFirst

public boolean offerFirst(E e)
インタフェース BlockingDeque の記述:
容量制限に違反することなしに指定された要素をこの両端キューの先頭にすぐに挿入できる場合には、そうします。成功した場合は true を返し、使用可能な空き領域がその時点で存在しない場合は false を返します。容量制限のある両端キューを使用する場合、通常は、要素の挿入に失敗した場合に例外をスローするだけの addFirst メソッドよりもこのメソッドを使用することをお勧めします。

定義:
インタフェース BlockingDeque<E> 内の offerFirst
定義:
インタフェース Deque<E> 内の offerFirst
パラメータ:
e - 追加する要素
戻り値:
要素がこの両端キューに追加された場合は true、そうでない場合は false
例外:
NullPointerException - 指定された要素が null である場合

offerLast

public boolean offerLast(E e)
インタフェース BlockingDeque の記述:
容量制限に違反することなしに指定された要素をこの両端キューの末尾にすぐに挿入できる場合には、そうします。成功した場合は true を返し、使用可能な空き領域がその時点で存在しない場合は false を返します。容量制限のある両端キューを使用する場合、通常は、要素の挿入に失敗した場合に例外をスローするだけの addLast メソッドよりもこのメソッドを使用することをお勧めします。

定義:
インタフェース BlockingDeque<E> 内の offerLast
定義:
インタフェース Deque<E> 内の offerLast
パラメータ:
e - 追加する要素
戻り値:
要素がこの両端キューに追加された場合は true、そうでない場合は false
例外:
NullPointerException - 指定された要素が null である場合

putFirst

public void putFirst(E e)
              throws InterruptedException
インタフェース BlockingDeque の記述:
指定された要素をこの両端キューの先頭に挿入します。必要に応じて、空きが生じるまで待機します。

定義:
インタフェース BlockingDeque<E> 内の putFirst
パラメータ:
e - 追加する要素
例外:
NullPointerException - 指定された要素が null である場合
InterruptedException - 待機中に割り込みが発生した場合

putLast

public void putLast(E e)
             throws InterruptedException
インタフェース BlockingDeque の記述:
指定された要素をこの両端キューの末尾に挿入します。必要に応じて、空きが生じるまで待機します。

定義:
インタフェース BlockingDeque<E> 内の putLast
パラメータ:
e - 追加する要素
例外:
NullPointerException - 指定された要素が null である場合
InterruptedException - 待機中に割り込みが発生した場合

offerFirst

public boolean offerFirst(E e,
                          long timeout,
                          TimeUnit unit)
                   throws InterruptedException
インタフェース BlockingDeque の記述:
指定された要素をこの両端キューの先頭に挿入します。必要に応じて、指定された待機時間まで空きが生じるのを待機します。

定義:
インタフェース BlockingDeque<E> 内の offerFirst
パラメータ:
e - 追加する要素
timeout - 処理を中止するまでの待機時間。単位は unit
unit - timeout パラメータの解釈方法を決定する TimeUnit
戻り値:
成功した場合は true、空きが生じる前に指定された待機時間が経過した場合は false
例外:
NullPointerException - 指定された要素が null である場合
InterruptedException - 待機中に割り込みが発生した場合

offerLast

public boolean offerLast(E e,
                         long timeout,
                         TimeUnit unit)
                  throws InterruptedException
インタフェース BlockingDeque の記述:
指定された要素をこの両端キューの末尾に挿入します。必要に応じて、指定された待機時間まで空きが生じるのを待機します。

定義:
インタフェース BlockingDeque<E> 内の offerLast
パラメータ:
e - 追加する要素
timeout - 処理を中止するまでの待機時間。単位は unit
unit - timeout パラメータの解釈方法を決定する TimeUnit
戻り値:
成功した場合は true、空きが生じる前に指定された待機時間が経過した場合は false
例外:
NullPointerException - 指定された要素が null である場合
InterruptedException - 待機中に割り込みが発生した場合

removeFirst

public E removeFirst()
インタフェース Deque の記述:
この両端キューの最初の要素を取得して削除します。このメソッドは、両端キューが空の場合に例外をスローする点のみが pollFirst と異なります。

定義:
インタフェース Deque<E> 内の removeFirst
戻り値:
この両端キューの先頭
例外:
NoSuchElementException - この両端キューが空の場合

removeLast

public E removeLast()
インタフェース Deque の記述:
この両端キューの最後の要素を取得して削除します。このメソッドは、両端キューが空の場合に例外をスローする点のみが pollLast と異なります。

定義:
インタフェース Deque<E> 内の removeLast
戻り値:
この両端キューの末尾
例外:
NoSuchElementException - この両端キューが空の場合

pollFirst

public E pollFirst()
インタフェース Deque の記述:
この両端キューの最初の要素を取得および削除します。両端キューが空の場合は null を返します。

定義:
インタフェース Deque<E> 内の pollFirst
戻り値:
この両端キューの先頭。両端キューが空の場合は null

pollLast

public E pollLast()
インタフェース Deque の記述:
この両端キューの最後の要素を取得および削除します。両端キューが空の場合は null を返します。

定義:
インタフェース Deque<E> 内の pollLast
戻り値:
この両端キューの末尾。両端キューが空の場合は null

takeFirst

public E takeFirst()
            throws InterruptedException
インタフェース BlockingDeque の記述:
この両端キューの最初の要素を取得して削除します。必要に応じて、要素が利用可能になるまで待機します。

定義:
インタフェース BlockingDeque<E> 内の takeFirst
戻り値:
この両端キューの先頭
例外:
InterruptedException - 待機中に割り込みが発生した場合

takeLast

public E takeLast()
           throws InterruptedException
インタフェース BlockingDeque の記述:
この両端キューの最後の要素を取得して削除します。必要に応じて、要素が利用可能になるまで待機します。

定義:
インタフェース BlockingDeque<E> 内の takeLast
戻り値:
この両端キューの末尾
例外:
InterruptedException - 待機中に割り込みが発生した場合

pollFirst

public E pollFirst(long timeout,
                   TimeUnit unit)
            throws InterruptedException
インタフェース BlockingDeque の記述:
この両端キューの最初の要素を取得して削除します。必要に応じて、指定された待機時間まで要素が利用可能になるのを待機します。

定義:
インタフェース BlockingDeque<E> 内の pollFirst
パラメータ:
timeout - 処理を中止するまでの待機時間。単位は unit
unit - timeout パラメータの解釈方法を決定する TimeUnit
戻り値:
この両端キューの先頭、要素が利用可能になる前に指定された待機時間が経過した場合は null
例外:
InterruptedException - 待機中に割り込みが発生した場合

pollLast

public E pollLast(long timeout,
                  TimeUnit unit)
           throws InterruptedException
インタフェース BlockingDeque の記述:
この両端キューの最後の要素を取得して削除します。必要に応じて、指定された待機時間まで要素が利用可能になるのを待機します。

定義:
インタフェース BlockingDeque<E> 内の pollLast
パラメータ:
timeout - 処理を中止するまでの待機時間。単位は unit
unit - timeout パラメータの解釈方法を決定する TimeUnit
戻り値:
この両端キューの末尾、要素が利用可能になる前に指定された待機時間が経過した場合は null
例外:
InterruptedException - 待機中に割り込みが発生した場合

getFirst

public E getFirst()
インタフェース Deque の記述:
この両端キューの最初の要素を取得しますが、削除はしません。 このメソッドは、両端キューが空の場合に例外をスローする点のみが peekFirst と異なります。

定義:
インタフェース Deque<E> 内の getFirst
戻り値:
この両端キューの先頭
例外:
NoSuchElementException - この両端キューが空の場合

getLast

public E getLast()
インタフェース Deque の記述:
この両端キューの最後の要素を取得しますが、削除はしません。このメソッドは、両端キューが空の場合に例外をスローする点のみが peekLast と異なります。

定義:
インタフェース Deque<E> 内の getLast
戻り値:
この両端キューの末尾
例外:
NoSuchElementException - この両端キューが空の場合

peekFirst

public E peekFirst()
インタフェース Deque の記述:
この両端キューの最初の要素を取得しますが、削除しません。両端キューが空の場合は null を返します。

定義:
インタフェース Deque<E> 内の peekFirst
戻り値:
この両端キューの先頭。両端キューが空の場合は null

peekLast

public E peekLast()
インタフェース Deque の記述:
この両端キューの最後の要素を取得しますが、削除しません。両端キューが空の場合は null を返します。

定義:
インタフェース Deque<E> 内の peekLast
戻り値:
この両端キューの末尾。両端キューが空の場合は null

removeFirstOccurrence

public boolean removeFirstOccurrence(Object o)
インタフェース BlockingDeque の記述:
指定された要素のうち最初に出現したものを、この両端キューから削除します。その要素が両端キューにない場合、変更はありません。つまり、o.equals(e) となる最初の要素 e が存在する場合は、その要素を削除します。指定された要素が両端キュー内にあった場合 (両端キューが呼び出しの結果として変更された場合) は、true を返します。

定義:
インタフェース BlockingDeque<E> 内の removeFirstOccurrence
定義:
インタフェース Deque<E> 内の removeFirstOccurrence
パラメータ:
o - この両端キューから削除される要素 (その要素が存在する場合)
戻り値:
この呼び出しの結果、要素が削除された場合は true

removeLastOccurrence

public boolean removeLastOccurrence(Object o)
インタフェース BlockingDeque の記述:
指定された要素のうち最後に出現したものを、この両端キューから削除します。その要素が両端キューにない場合、変更はありません。つまり、o.equals(e) となる最後の要素 e が存在する場合は、その要素を削除します。指定された要素が両端キュー内にあった場合 (両端キューが呼び出しの結果として変更された場合) は、true を返します。

定義:
インタフェース BlockingDeque<E> 内の removeLastOccurrence
定義:
インタフェース Deque<E> 内の removeLastOccurrence
パラメータ:
o - この両端キューから削除される要素 (その要素が存在する場合)
戻り値:
この呼び出しの結果、要素が削除された場合は true

add

public boolean add(E e)
容量制限に違反しないかぎり、指定された要素をこの両端キューの末尾に挿入します。容量制限のある両端キューを使用する場合、通常は offer メソッドを使用することをお勧めします。

このメソッドは、addLast(E) と同等です。

定義:
インタフェース Collection<E> 内の add
定義:
インタフェース BlockingDeque<E> 内の add
定義:
インタフェース BlockingQueue<E> 内の add
定義:
インタフェース Deque<E> 内の add
定義:
インタフェース Queue<E> 内の add
オーバーライド:
クラス AbstractQueue<E> 内の add
パラメータ:
e - 追加する要素
戻り値:
true (Collection.add(E) で指定された場合と同様)
例外:
IllegalStateException - 容量制限が原因でこの時点で要素を追加できない場合
NullPointerException - 指定された要素が null である場合

offer

public boolean offer(E e)
インタフェース BlockingDeque の記述:
指定された要素を、この両端キューで表されるキュー (つまり、この両端キューの末尾) に、容量制限に違反することなしにすぐに挿入できる場合には、そうします。成功した場合は true を返し、使用可能な空き領域がその時点で存在しない場合は false を返します。容量制限のある両端キューを使用する場合、通常は、要素の挿入に失敗した場合に例外をスローするだけの BlockingDeque.add(E) メソッドよりもこのメソッドを使用することをお勧めします。

このメソッドは、offerLast と同等です。

定義:
インタフェース BlockingDeque<E> 内の offer
定義:
インタフェース BlockingQueue<E> 内の offer
定義:
インタフェース Deque<E> 内の offer
定義:
インタフェース Queue<E> 内の offer
パラメータ:
e - 追加する要素
戻り値:
このキューに要素が追加された場合は true、それ以外の場合は false
例外:
NullPointerException - 指定された要素が null である場合

put

public void put(E e)
         throws InterruptedException
インタフェース BlockingDeque の記述:
指定された要素をこの両端キューで表されるキュー (つまり、この両端キューの末尾) に挿入します。必要に応じて、空きが生じるまで待機します。

このメソッドは、putLast と同等です。

定義:
インタフェース BlockingDeque<E> 内の put
定義:
インタフェース BlockingQueue<E> 内の put
パラメータ:
e - 追加する要素
例外:
NullPointerException - 指定された要素が null である場合
InterruptedException - 待機中に割り込みが発生した場合

offer

public boolean offer(E e,
                     long timeout,
                     TimeUnit unit)
              throws InterruptedException
インタフェース BlockingDeque の記述:
指定された要素をこの両端キューで表されるキュー (つまり、この両端キューの末尾) に挿入します。必要に応じて、指定された待機時間まで空きが生じるのを待機します。

このメソッドは、offerLast と同等です。

定義:
インタフェース BlockingDeque<E> 内の offer
定義:
インタフェース BlockingQueue<E> 内の offer
パラメータ:
e - 追加する要素
timeout - 処理を中止するまでの待機時間。単位は unit
unit - timeout パラメータの解釈方法を決定する TimeUnit
戻り値:
要素がこの両端キューに追加された場合は true、そうでない場合は false
例外:
NullPointerException - 指定された要素が null である場合
InterruptedException - 待機中に割り込みが発生した場合

remove

public E remove()
この両端キューで表されるキューの先頭を取得して削除します。このメソッドは、両端キューが空の場合に例外をスローする点が poll と異なります。

このメソッドは、removeFirst と同等です。

定義:
インタフェース BlockingDeque<E> 内の remove
定義:
インタフェース Deque<E> 内の remove
定義:
インタフェース Queue<E> 内の remove
オーバーライド:
クラス AbstractQueue<E> 内の remove
戻り値:
この両端キューで表されるキューの先頭
例外:
NoSuchElementException - 両端キューが空の場合

poll

public E poll()
インタフェース BlockingDeque の記述:
この両端キューによって表されるキューの先頭 (つまり、この両端キューの最初の要素) を取得して削除します。両端キューが空の場合は、null を返します。

このメソッドは、Deque.pollFirst() と同等です。

定義:
インタフェース BlockingDeque<E> 内の poll
定義:
インタフェース Deque<E> 内の poll
定義:
インタフェース Queue<E> 内の poll
戻り値:
両端キューの先頭。両端キューが空の場合は null

take

public E take()
       throws InterruptedException
インタフェース BlockingDeque の記述:
この両端キューによって表されるキューの先頭 (つまり、この両端キューの最初の要素) を取得して削除します。必要に応じて、要素が利用可能になるまで待機します。

このメソッドは、takeFirst と同等です。

定義:
インタフェース BlockingDeque<E> 内の take
定義:
インタフェース BlockingQueue<E> 内の take
戻り値:
この両端キューの先頭
例外:
InterruptedException - 待機中に割り込みが発生した場合

poll

public E poll(long timeout,
              TimeUnit unit)
       throws InterruptedException
インタフェース BlockingDeque の記述:
この両端キューによって表されるキューの先頭 (つまり、この両端キューの最初の要素) を取得して削除します。必要に応じて、指定された待機時間まで要素が利用可能になるのを待機します。

このメソッドは、pollFirst と同等です。

定義:
インタフェース BlockingDeque<E> 内の poll
定義:
インタフェース BlockingQueue<E> 内の poll
パラメータ:
timeout - 処理を中止するまでの待機時間。単位は unit
unit - timeout パラメータの解釈方法を決定する TimeUnit
戻り値:
この両端キューの先頭、要素が利用可能になる前に指定された待機時間が経過した場合は null
例外:
InterruptedException - 待機中に割り込みが発生した場合

element

public E element()
この両端キューで表されるキューの先頭を取得しますが、削除しません。このメソッドは、両端キューが空の場合に例外をスローする点のみが peek と異なります。

このメソッドは、getFirst と同等です。

定義:
インタフェース BlockingDeque<E> 内の element
定義:
インタフェース Deque<E> 内の element
定義:
インタフェース Queue<E> 内の element
オーバーライド:
クラス AbstractQueue<E> 内の element
戻り値:
この両端キューで表されるキューの先頭
例外:
NoSuchElementException - 両端キューが空の場合

peek

public E peek()
インタフェース BlockingDeque の記述:
この両端キューによって表されるキューの先頭 (つまり、この両端キューの最初の要素) を取得しますが、削除しません。両端キューが空の場合は、null を返します。

このメソッドは、peekFirst と同等です。

定義:
インタフェース BlockingDeque<E> 内の peek
定義:
インタフェース Deque<E> 内の peek
定義:
インタフェース Queue<E> 内の peek
戻り値:
両端キューの先頭。両端キューが空の場合は null

remainingCapacity

public int remainingCapacity()
理想的な状態 (メモリーやリソースの制限がない状態) で、この両端キューがブロックせずに受け入れることができる追加要素の数を返します。この両端キューの初期容量から現在の size を引いた値と常に同じです。

remainingCapacity を調べても要素の挿入試行が成功するかどうかがわかるとはかぎりません。これは別のスレッドが要素を挿入または削除しようとしている可能性があるためです。

定義:
インタフェース BlockingQueue<E> 内の remainingCapacity
戻り値:
残りの容量

drainTo

public int drainTo(Collection<? super E> c)
インタフェース BlockingQueue の記述:
このキューから利用可能なすべての要素を削除し、それらを指定されたコレクションに追加します。このオペレーションは、このキューを繰り返しポーリングする場合よりも効率的な場合があります。コレクション c に要素を追加しようとしたときに障害が発生すると、関連する例外のスロー時に、要素がこのキューとコレクションのいずれにも存在しない場合と、一方または両方に存在する場合があります。キューをそれ自体に排出しようとすると、IllegalArgumentException がスローされます。また、オペレーションの進行中に指定されたコレクションが変更された場合の、このオペレーションの動作は定義されていません。

定義:
インタフェース BlockingQueue<E> 内の drainTo
パラメータ:
c - 要素の転送先のコレクション
戻り値:
転送された要素の数
例外:
UnsupportedOperationException - 指定されたコレクションで追加の要素がサポートされていない場合
ClassCastException - このキューの要素のクラスが原因で、その要素を指定されたコレクションに追加できない場合
NullPointerException - 指定されたコレクションが null である場合
IllegalArgumentException - 指定されたコレクションがこのキューである場合、またはこのキューの要素のあるプロパティーが原因で指定されたコレクションに追加できない場合

drainTo

public int drainTo(Collection<? super E> c,
                   int maxElements)
インタフェース BlockingQueue の記述:
指定された数以内の利用可能な要素をこのキューから削除し、指定されたコレクションに追加します。コレクション c に要素を追加しようとしたときに障害が発生すると、関連する例外のスロー時に、要素がこのキューとコレクションのいずれにも存在しない場合と、一方または両方に存在する場合があります。キューをそれ自体に排出しようとすると、IllegalArgumentException がスローされます。また、オペレーションの進行中に指定されたコレクションが変更された場合の、このオペレーションの動作は定義されていません。

定義:
インタフェース BlockingQueue<E> 内の drainTo
パラメータ:
c - 要素の転送先のコレクション
maxElements - 転送する要素の最大数
戻り値:
転送された要素の数
例外:
UnsupportedOperationException - 指定されたコレクションで追加の要素がサポートされていない場合
ClassCastException - このキューの要素のクラスが原因で、その要素を指定されたコレクションに追加できない場合
NullPointerException - 指定されたコレクションが null である場合
IllegalArgumentException - 指定されたコレクションがこのキューである場合、またはこのキューの要素のあるプロパティーが原因で指定されたコレクションに追加できない場合

push

public void push(E e)
インタフェース BlockingDeque の記述:
この両端キューで表されるスタックに要素を入れます。つまり、容量制限に違反しないかぎり、要素をこの両端キューの先頭に挿入します。

このメソッドは、addFirst と同等です。

定義:
インタフェース BlockingDeque<E> 内の push
定義:
インタフェース Deque<E> 内の push
パラメータ:
e - プッシュする要素
例外:
IllegalStateException - 容量制限が原因でこの時点で要素を追加できない場合
NullPointerException - 指定された要素が null である場合

pop

public E pop()
インタフェース Deque の記述:
この両端キューで表されるスタックに要素をポップします。つまり、この両端キューの最初の要素を削除して返します。

このメソッドは、Deque.removeFirst() と同等です。

定義:
インタフェース Deque<E> 内の pop
戻り値:
この両端キューの先頭の要素 (この両端キューによって表されるスタックの上部)
例外:
NoSuchElementException - この両端キューが空の場合

remove

public boolean remove(Object o)
指定された要素のうち最初に出現したものを、この両端キューから削除します。その要素が両端キューにない場合、変更はありません。つまり、o.equals(e) となる最初の要素 e が存在する場合は、その要素を削除します。指定された要素が両端キュー内にあった場合 (両端キューが呼び出しの結果として変更された場合) は、true を返します。

このメソッドは、removeFirstOccurrence と同等です。

定義:
インタフェース Collection<E> 内の remove
定義:
インタフェース BlockingDeque<E> 内の remove
定義:
インタフェース BlockingQueue<E> 内の remove
定義:
インタフェース Deque<E> 内の remove
オーバーライド:
クラス AbstractCollection<E> 内の remove
パラメータ:
o - この両端キューから削除される要素 (その要素が存在する場合)
戻り値:
この呼び出しの結果、この両端キューが変更された場合は true

size

public int size()
この両端キュー内の要素の数を返します。

定義:
インタフェース Collection<E> 内の size
定義:
インタフェース BlockingDeque<E> 内の size
定義:
インタフェース Deque<E> 内の size
定義:
クラス AbstractCollection<E> 内の size
戻り値:
この両端キュー内の要素の数

contains

public boolean contains(Object o)
指定された要素がこの両端キューに含まれている場合に true を返します。つまり、両端キューに、o.equals(e) となる要素 e が 1 つ以上含まれている場合にだけ true を返します。

定義:
インタフェース Collection<E> 内の contains
定義:
インタフェース BlockingDeque<E> 内の contains
定義:
インタフェース BlockingQueue<E> 内の contains
定義:
インタフェース Deque<E> 内の contains
オーバーライド:
クラス AbstractCollection<E> 内の contains
パラメータ:
o - この両端キューに含まれているかどうかを調べるオブジェクト
戻り値:
指定された要素がこの両端キューに含まれている場合は true

toArray

public Object[] toArray()
両端キュー内のすべての要素を適切な順序 (最初の要素から最後の要素へ) で格納している配列を返します。

返される配列への参照を両端キューが維持しないという点で、この配列は安全です。(つまり、このメソッドは新しい配列を割り当てる必要があります)。このため、呼び出し側は、返された配列を自由に変更できます。

メソッドは、配列ベースの API とコレクションベースの API の間の橋渡し役として機能します。

定義:
インタフェース Collection<E> 内の toArray
オーバーライド:
クラス AbstractCollection<E> 内の toArray
戻り値:
両端キューのすべての要素が格納されている配列

toArray

public <T> T[] toArray(T[] a)
両端キュー内のすべての要素を適切な順序で含む配列を返します。返される配列の実行時の型は、指定された配列の型になります。指定された配列に両端キューが収まる場合は、その中に返されます。そうでない場合は、指定された配列の実行時の型と両端キューのサイズを持つ新しい配列が割り当てられます。

両端キューが指定された配列に収まり、その配列にさらに余裕がある場合 (つまり、配列が両端キューより多くの要素を持つ場合)、その配列内で両端キューの終端よりあとの要素は null に設定されます。

toArray() メソッドと同じように、このメソッドは、配列ベースの API とコレクションベースの API の間の橋渡し役として機能します。さらに、このメソッドでは、出力配列の実行時の型を正確に制御できるため、環境によっては割り当ての手間を抑えることができます。

x が、文字列だけからなる両端キューであることがわかっていると仮定します。次のコードを使うと、新しく割り当てられた String の配列に両端キューをダンプできます。

String[] y = x.toArray(new String[0]);
toArray(new Object[0]) は、機能の点で toArray() と同一です。

定義:
インタフェース Collection<E> 内の toArray
オーバーライド:
クラス AbstractCollection<E> 内の toArray
パラメータ:
a - 配列が十分な大きさを持つ場合は、両端キューの要素が格納される配列。そうでない場合は、要素を格納するために同じ実行時の型の新しい配列が割り当てられる
戻り値:
両端キューのすべての要素が格納されている配列
例外:
ArrayStoreException - 指定された配列の実行時の型が、この両端キュー内のすべての要素の実行時の型のスーパータイプでない場合
NullPointerException - 指定された配列が null である場合

toString

public String toString()
クラス AbstractCollection の記述:
このコレクションの文字列表現を返します。文字列表現は、コレクションの要素をその反復子が返した順に角括弧 ("[]") で囲んで示すリストです。隣接する要素は、文字 ", " (カンマと空白文字) によって区切られます。各要素は、String.valueOf(Object) を実行したかのように文字列に変換されます。

オーバーライド:
クラス AbstractCollection<E> 内の toString
戻り値:
このコレクションの文字列表現

clear

public void clear()
すべての要素をこの両端キューから原子的に削除します。この呼び出しが戻ると、両端キューは空になります。

定義:
インタフェース Collection<E> 内の clear
オーバーライド:
クラス AbstractQueue<E> 内の clear

iterator

public Iterator<E> iterator()
この両端キュー内の要素を適切な順序で繰り返し処理する反復子を返します。要素は最初 (先頭) から最後 (末尾) の順に返されます。返される Iterator は「弱一貫性」を持つ反復子であり、ConcurrentModificationException をスローすることはなく、反復子の構築時に存在した要素をトラバースすることを保証します。また、構築後のすべての変更を反映します (ただし保証されてはいない)。

定義:
インタフェース Iterable<E> 内の iterator
定義:
インタフェース Collection<E> 内の iterator
定義:
インタフェース BlockingDeque<E> 内の iterator
定義:
インタフェース Deque<E> 内の iterator
定義:
クラス AbstractCollection<E> 内の iterator
戻り値:
両端キュー内の要素を適切な順序で繰り返し処理する反復子

descendingIterator

public Iterator<E> descendingIterator()
この両端キュー内の要素を逆順で繰り返し処理する反復子を返します。要素は最後 (末尾) から最初 (先頭) の順に返されます。返される Iterator は「弱一貫性」を持つ反復子であり、ConcurrentModificationException をスローすることはなく、反復子の構築時に存在した要素をトラバースすることを保証します。また、構築後のすべての変更を反映します (ただし保証されてはいない)。

定義:
インタフェース Deque<E> 内の descendingIterator
戻り値:
この両端キュー内の要素を逆順で繰り返し処理する反復子

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。