モジュール java.base
パッケージ 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要素のバインドされていない「ブロック・キュー」。この要素では、遅延が期限切れになると、要素が一般的に削除の対象になります。

getDelay(TimeUnit.NANOSECONDS)メソッドがゼロ以下の値を返す場合、要素はexpiredとみなされます。

要素が過去または将来(このような要素がある場合)の失効時間が最も早い要素の場合、その要素はキューの指導者とみなされます。

要素が過去の有効期限が最も早いexpired要素である場合、その要素はキューの期限切れヘッドとみなされます(その要素がある場合)。期限切れヘッドが存在する場合は、指導者でもあります。

このクラスはBlockingQueueインタフェースを実装しますが、次のメソッドは期限切れでない要素の存在を無視し、期限切れヘッドのみを削除するという点で、意図的にBlockingQueueの一般契約に違反します:

他のすべてのメソッドは、期限切れ要素と期限切れでない要素の両方に対して動作します。 たとえば、size()メソッドは、すべての要素の数を返します。 メソッドpeek()は、take()がブロックされてその要素が期限切れになるまで待機する場合でも、(non-null) 「指導者」を返すことができます。

このキューでは、null要素は許可されません。

このクラスとそのイテレータは、CollectionおよびIteratorインタフェースのオプション・メソッドすべてを実装します。 iterator()メソッド内で提供されるIteratorでは、特定の順序でDelayQueueの要素をトラバースすることは保証されません

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

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