JavaTM 2 Platform
Standard Ed. 5.0

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 要素です。期限切れの遅延がない場合は、先頭は存在せず、pollnull を返します。期限切れは要素の getDelay(TimeUnit.NANOSECONDS) メソッドがゼロ以下の値を返した場合に発生します。このキューは、null 要素を許可しません。

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

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

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

コンストラクタの概要
DelayQueue()
          初期状態が空の DelayQueue を新規作成します。
DelayQueue(Collection<? extends E> c)
          DelayQueue を作成します。
 
メソッドの概要
 boolean add(E o)
          指定された要素をこのキューに追加します。
 void clear()
          この遅延キューからすべての要素を原子的に削除します。
 int drainTo(Collection<? super E> c)
          利用可能なすべての要素をこのキューから削除して、指定されたコレクションに追加します。
 int drainTo(Collection<? super E> c, int maxElements)
          指定された数以内の利用可能な要素をこのキューから削除して、指定されたコレクションに追加します。
 Iterator<E> iterator()
          このキュー内の要素の反復子を返します。
 boolean offer(E o)
          指定された要素をこの遅延キューに挿入します。
 boolean offer(E o, long timeout, TimeUnit unit)
          指定された要素をこの遅延キューに挿入します。
 E peek()
          キューの先頭を取得しても削除はしません。
 E poll()
          キューの先頭を取得および削除します。
 E poll(long timeout, TimeUnit unit)
          このキューの先頭を取得および削除します。
 void put(E o)
          指定された要素をこの遅延キューに追加します。
 int remainingCapacity()
          DelayQueue は容量制限がないため、常に Integer.MAX_VALUE を返します。
 boolean remove(Object o)
          指定された要素の単一のインスタンスがあればキューから削除します。
 int size()
          このコレクション中の要素の数を返します。
 E take()
          このキューの先頭を取得および削除します。
 Object[] toArray()
          このコレクションの要素がすべて格納されている配列を返します。
<T> T[]
toArray(T[] array)
          このコレクション内のすべての要素を保持する配列を返します。
 
クラス 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.Queue から継承されたメソッド
element, remove
 
インタフェース java.util.Collection から継承されたメソッド
addAll, contains, containsAll, equals, hashCode, isEmpty, removeAll, retainAll
 

コンストラクタの詳細

DelayQueue

public DelayQueue()
初期状態が空の DelayQueue を新規作成します。


DelayQueue

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

パラメータ:
c - コレクション
例外:
NullPointerException - c またはその内部要素のいずれかが null の場合
メソッドの詳細

offer

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

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

put

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

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

offer

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

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

add

public boolean add(E o)
指定された要素をこのキューに追加します。

定義:
インタフェース Collection<E extends Delayed> 内の add
定義:
インタフェース BlockingQueue<E extends Delayed> 内の add
オーバーライド:
クラス AbstractQueue<E extends Delayed> 内の add
パラメータ:
o - 追加する要素
戻り値:
true (Collection.add の一般規約に従う)
例外:
NullPointerException - 指定された要素が 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 - 待機中に割り込みが発生した場合

poll

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

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

peek

public E peek()
キューの先頭を取得しても削除はしません。キューに遅延が期限切れでない要素がない場合は null を返します。

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

size

public int size()
クラス AbstractCollection の記述:
このコレクション中の要素の数を返します。コレクションに 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 に要素の add 操作を試みる際に障害が発生した場合、関連する例外のスロー時に要素がコレクションのいずれにも存在しないか、一方または両方に存在する可能性があります。キューを自分自身に排出することを試みると、IllegalArgumentException がスローされます。また、この操作の進行中に指定されたコレクションが変更された場合の動作は、定義されていません。

定義:
インタフェース BlockingQueue<E extends Delayed> 内の drainTo
パラメータ:
c - 要素の転送先のコレクション
戻り値:
転送される要素の数

drainTo

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

定義:
インタフェース BlockingQueue<E extends Delayed> 内の drainTo
パラメータ:
c - 要素の転送先のコレクション
maxElements - 転送する要素の最大数
戻り値:
転送される要素の数

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()
クラス AbstractCollection の記述:
このコレクションの要素がすべて格納されている配列を返します。反復子によって返される要素の順番をコレクションが保証する場合、このメソッドはそれと同じ順番で要素を返します。返される配列は、コレクションによって管理される参照関係を持たない点で安全性が保証されます。つまり、このメソッドは、コレクションの基が Array である場合でも、新しく配列を割り当てます。このため、呼び出し側は、返された配列を自由に変更できます。

この実装は、返される配列を割り当て、コレクションの各要素について繰り返します。つまり、各オブジェクト参照を配列の次の要素に格納するという処理を、第 0 要素から開始します。

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

toArray

public <T> T[] toArray(T[] array)
クラス AbstractCollection の記述:
このコレクション内のすべての要素を保持する配列を返します。返される配列の実行時の型は、指定された配列の型です。コレクションが指定された配列に収まる場合は、その中に返されます。そうでない場合は、指定された配列の実行時の型とコレクションのサイズを持つ新しい配列が割り当てられます。

指定された配列にコレクションが収まり、さらに空きがある場合、すなわち配列にコレクション以上の要素数がある場合には、コレクションの終端の直後にある配列の要素が null に設定されます。コレクションに null 要素がないことが呼び出し側でわかっている場合には、これにより、コレクションの長さを判定できます。

反復子によって要素が返される順序をコレクションが保証する場合、このメソッドは同じ順序で要素を返さなければなりません。

この実装は、配列がコレクションの格納に十分な大きさであるかを確認します。不十分な場合、この実装はリフレクションを使って、適切なサイズおよび型の配列を新しく割り当てます。次に、コレクションに対して、0 から順に配列の連続する要素へ各オブジェクト参照を格納する操作を反復します。配列がコレクションよりも大きい場合、コレクションの終端より後の最初の位置に null が格納されます。

定義:
インタフェース Collection<E extends Delayed> 内の toArray
オーバーライド:
クラス AbstractCollection<E extends Delayed> 内の toArray
パラメータ:
array - コレクションの要素の格納先の配列。配列のサイズが十分でない場合は、同じ実行時の型で新しい配列が格納用として割り当てられる
戻り値:
コレクションの要素を含む配列

remove

public boolean remove(Object o)
指定された要素の単一のインスタンスがあればキューから削除します。

定義:
インタフェース Collection<E extends Delayed> 内の remove
オーバーライド:
クラス AbstractCollection<E extends Delayed> 内の remove
パラメータ:
o - コレクションから削除される要素 (その要素がある場合)
戻り値:
コレクションに指定された要素がある場合は true

iterator

public Iterator<E> iterator()
このキュー内の要素の反復子を返します。反復子が要素を返す特定の順序はありません。返される反復子はスレッドセーフで「ファストフェイル」な反復子であり、干渉を検出すると ConcurrentModificationException をスローします。

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

JavaTM 2 Platform
Standard Ed. 5.0

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

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