JavaTM Platform
Standard Ed. 6

java.util.concurrent
クラス DelayQueue<E extends Delayed>

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

public class DelayQueue<E extends Delayed>
extends AbstractQueue<E>
implements BlockingQueue<E>

Delayed 要素のアンバウンド形式のブロッキングキューで、遅延時間が経過後にのみ、要素を取得できます。キューの先頭は、遅延の期限がもっとも前に切れた Delayed 要素です。期限切れの Delayed 要素がない場合は、先頭は存在せず、pollnull を返します。期限切れは、要素の getDelay(TimeUnit.NANOSECONDS) メソッドがゼロ以下の値を返した場合に発生します。takepoll を使用して有効期限内の要素を削除できない場合でも、通常の要素として扱われます。たとえば、size メソッドは、期限切れの要素と有効期限内の要素の両方のカウントを返します。このキューでは、null 要素は許可されません。  

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

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

導入されたバージョン:
1.5

コンストラクタの概要
DelayQueue()
          新しい DelayQueue を作成します。
DelayQueue(Collection<? extends E> c)
          DelayQueue を作成します。
 
メソッドの概要
 boolean add(E e)
          指定された要素をこの遅延キューに挿入します。
 void clear()
          すべての要素をこの遅延キューから原子的に削除します。
 int drainTo(Collection<? super E> c)
          このキューから利用可能なすべての要素を削除し、それらを指定されたコレクションに追加します。
 int drainTo(Collection<? super E> c, int maxElements)
          指定された数以内の利用可能な要素をこのキューから削除し、指定されたコレクションに追加します。
 Iterator<E> iterator()
          このキュー内のすべての要素 (期限切れと有効期限内の両方) についての反復子を返します。
 boolean offer(E e)
          指定された要素をこの遅延キューに挿入します。
 boolean offer(E e, long timeout, TimeUnit unit)
          指定された要素をこの遅延キューに挿入します。
 E peek()
          キューの先頭を取得しますが、削除しません。
 E poll()
          このキューの先頭を取得および削除します。
 E poll(long timeout, TimeUnit unit)
          このキューの先頭を取得および削除します。
 void put(E e)
          指定された要素をこの遅延キューに挿入します。
 int remainingCapacity()
          DelayQueue は容量制限がないため、常に Integer.MAX_VALUE を返します。
 boolean remove(Object o)
          指定された要素の単一のインスタンスがこのキューに存在する場合は、期限切れかどうかにかかわらず、キューから削除します。
 int size()
          このコレクション中の要素の数を返します。
 E take()
          このキューの先頭を取得および削除します。
 Object[] toArray()
          このキューの要素がすべて含まれている配列を返します。
<T> T[]
toArray(T[] a)
          このキュー内のすべての要素を含む配列を返します。
 
クラス java.util.AbstractQueue から継承されたメソッド
addAll, element, remove
 
クラス java.util.AbstractCollection から継承されたメソッド
contains, containsAll, isEmpty, removeAll, retainAll, toString
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
インタフェース java.util.concurrent.BlockingQueue から継承されたメソッド
contains
 
インタフェース java.util.Queue から継承されたメソッド
element, remove
 
インタフェース java.util.Collection から継承されたメソッド
addAll, containsAll, equals, hashCode, isEmpty, removeAll, retainAll
 

コンストラクタの詳細

DelayQueue

public DelayQueue()
新しい DelayQueue を作成します。これは、最初は空です。


DelayQueue

public DelayQueue(Collection<? extends E> c)
DelayQueue を作成します。これは、初期状態で Delayed インスタンスの指定されたコレクションの要素を含みます。

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

add

public boolean add(E e)
指定された要素をこの遅延キューに挿入します。

定義:
インタフェース Collection<E extends Delayed> 内の add
定義:
インタフェース BlockingQueue<E extends Delayed> 内の add
定義:
インタフェース Queue<E extends Delayed> 内の add
オーバーライド:
クラス AbstractQueue<E extends Delayed> 内の add
パラメータ:
e - 追加する要素
戻り値:
true (Collection.add(E) で指定されているとおり)
例外:
NullPointerException - 指定された要素が null である場合

offer

public boolean offer(E e)
指定された要素をこの遅延キューに挿入します。

定義:
インタフェース BlockingQueue<E extends Delayed> 内の offer
定義:
インタフェース Queue<E extends Delayed> 内の offer
パラメータ:
e - 追加する要素
戻り値:
true
例外:
NullPointerException - 指定された要素が null である場合

put

public void put(E e)
指定された要素をこの遅延キューに挿入します。キューがアンバウンド形式であるため、このメソッドはブロックを実行しません。

定義:
インタフェース BlockingQueue<E extends Delayed> 内の put
パラメータ:
e - 追加する要素
例外:
NullPointerException - 指定された要素が null である場合

offer

public boolean offer(E e,
                     long timeout,
                     TimeUnit unit)
指定された要素をこの遅延キューに挿入します。キューがアンバウンド形式であるため、このメソッドはブロックを実行しません。

定義:
インタフェース BlockingQueue<E extends Delayed> 内の offer
パラメータ:
e - 追加する要素
timeout - メソッドがブロックを実行することはないため、このパラメータは無視される
unit - メソッドがブロックを実行することはないため、このパラメータは無視される
戻り値:
true
例外:
NullPointerException - 指定された要素が null である場合

poll

public E poll()
このキューの先頭を取得および削除します。このキューに期限切れの遅延がある要素が存在しない場合は null を返します。

定義:
インタフェース Queue<E extends Delayed> 内の poll
戻り値:
このキューの先頭、このキューに期限切れの遅延がある要素が存在しない場合は null

take

public E take()
                       throws InterruptedException
このキューの先頭を取得および削除します。必要に応じて、期限切れの遅延がある要素がこのキューで利用可能になるまで待機します。

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

poll

public E poll(long timeout,
              TimeUnit unit)
                       throws InterruptedException
このキューの先頭を取得および削除します。必要に応じて、期限切れの遅延がある要素がこのキューで利用可能になるまで、または指定された有効期限が切れるまで待機します。

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

peek

public E peek()
キューの先頭を取得しますが、削除しません。キューが空の場合は null を返します。poll とは異なり、期限切れの要素がキューにない場合、このメソッドは、次に有効期限が切れる要素がある場合はそれを返します。

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

size

public int size()
インタフェース Collection の記述:
このコレクション中の要素の数を返します。このコレクションに Integer.MAX_VALUE より多くの要素がある場合は、Integer.MAX_VALUE を返します。

定義:
インタフェース Collection<E extends Delayed> 内の size
定義:
クラス AbstractCollection<E extends Delayed> 内の size
戻り値:
コレクションの要素数

drainTo

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

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

drainTo

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

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

clear

public void clear()
すべての要素をこの遅延キューから原子的に削除します。この呼び出しが戻ると、キューは空になります。有効期限内の遅延を持つ要素は待機せず、単にキューから破棄されます。

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

remainingCapacity

public int remainingCapacity()
DelayQueue は容量制限がないため、常に Integer.MAX_VALUE を返します。

定義:
インタフェース BlockingQueue<E extends Delayed> 内の remainingCapacity
戻り値:
Integer.MAX_VALUE

toArray

public Object[] toArray()
このキューの要素がすべて含まれている配列を返します。返される配列の要素に特定の順序はありません。  

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

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

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

toArray

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

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

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

次のコードを使うと、新しく割り当てられた Delayed の配列に遅延キューをダンプできます。  

     Delayed[] a = q.toArray(new Delayed[0]);
toArray(new Object[0]) は、機能の点で toArray() と同一です。

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

remove

public boolean remove(Object o)
指定された要素の単一のインスタンスがこのキューに存在する場合は、期限切れかどうかにかかわらず、キューから削除します。

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

iterator

public Iterator<E> iterator()
このキュー内のすべての要素 (期限切れと有効期限内の両方) についての反復子を返します。反復子が要素を返す特定の順序はありません。返される Iterator は「弱一貫性」を持つ反復子であり、ConcurrentModificationException をスローすることはなく、反復子の構築時に存在した要素をトラバースすることを保証します。また、構築後のすべての変更を反映します (ただし保証されてはいない)。

定義:
インタフェース Iterable<E extends Delayed> 内の iterator
定義:
インタフェース Collection<E extends Delayed> 内の iterator
定義:
クラス AbstractCollection<E extends Delayed> 内の iterator
戻り値:
キュー内の要素の反復子

JavaTM Platform
Standard Ed. 6

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

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