クラスDelayQueue<E extends Delayed>

型パラメータ:
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
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    新しいDelayQueueを作成します。これは、最初は空です。
    DelayQueue(Collection<? extends E> c)
    DelayQueueを作成します。これは、初期状態でDelayedインスタンスの指定されたコレクションの要 を含みます。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    boolean
    add(E e)
    指定された要 をこの遅延キューに挿入します。
    void
    すべての要 をこの遅延キューから原子的に削除します。
    int
    drainTo(Collection<? super E> c)
    このキューから利用可能なすべての要 を削除し、それらを指定されたコレクションに追 します。
    int
    drainTo(Collection<? super E> c, int maxElements)
    指定された数以内の利用可能な要 をこのキューから削除し、指定されたコレクションに追 します。
    このキュー内のすべての要 (期限切れと有効期限内の両方)についてのイテレータを返します。
    boolean
    offer(E e)
    指定された要 をこの遅延キューに挿入します。
    boolean
    offer(E e, long timeout, TimeUnit unit)
    指定された要 をこの遅延キューに挿入します。
    このキューの「指導者」を取得する(た し削除しない)か、このキューが空の 合はnullを返します。
    このキューの「期限切れヘッド」を取得して削除するか、このキューに「失効した要 」がない 合はnullを返します。
    poll(long timeout, TimeUnit unit)
    このキューの「期限切れヘッド」を取得および削除し、必要に応じて、このキューで「失効した要 」が使用可能になるか、指定された待機時間が期限切れになるまで待機します。
    void
    put(E e)
    指定された要 をこの遅延キューに挿入します。
    int
    DelayQueueは容量制限がないため、常にInteger.MAX_VALUEを返します。
    このキューの「期限切れヘッド」を取得して削除するか、このキューに「失効した要 」がない 合は例外をスローします。
    boolean
    指定された要 の単一のインスタンスがこのキューに存在する 合は、期限切れかどうかにかかわらず、キューから削除します。
    int
    このコレクション中の要 の数を返します。
    このキューの「期限切れヘッド」を取得および削除し、必要に応じて、このキューで「失効した要 」が使用可能になるまで待機します。
    このキューの要 がすべて含まれている配列を返します。
    <T> T[]
    toArray(T[] a)
    このキュー内のすべての要 を含む配列を返します。返される配列の実行時の型は、指定された配列の型です。

    クラスjava.util.AbstractQueueで宣言されたメソッド

    addAll, element

    クラス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.Collectionで宣言されたメソッド

    addAll, containsAll, equals, hashCode, isEmpty, parallelStream, removeAll, removeIf, retainAll, spliterator, stream, toArray

    インタフェースjava.lang.Iterableで宣言されたメソッド

    forEach

    インタフェースjava.util.Queueで宣言されたメソッド

    element
  • コンストラクタの詳細

    • DelayQueue

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

      public DelayQueue(Collection<? extends E> c)
      DelayQueueを作成します。これは、初期状態でDelayedインスタンスの指定されたコレクションの要 を含みます。
      パラメータ:
      c - 初期状態で含む要 のコレクション
      スロー:
      NullPointerException - 指定されたコレクションまたはそのいずれかの要 がnullである 合
  • メソッドの詳細

    • add

      public boolean add(E e)
      指定された要 をこの遅延キューに挿入します。
      定義:
      add、インタフェースBlockingQueue<E extends Delayed>
      定義:
      add、インタフェースCollection<E extends Delayed>
      定義:
      add、インタフェースQueue<E extends Delayed>
      オーバーライド:
      add、クラスAbstractQueue<E extends Delayed>
      パラメータ:
      e - 追 する要 
      戻り値:
      true (Collection.add(E)で指定されているとおり)
      スロー:
      NullPointerException - 指定された要 がnullである 合
    • offer

      public boolean offer(E e)
      指定された要 をこの遅延キューに挿入します。
      定義:
      offer、インタフェースBlockingQueue<E extends Delayed>
      定義:
      offer、インタフェースQueue<E extends Delayed>
      パラメータ:
      e - 追 する要 
      戻り値:
      true
      スロー:
      NullPointerException - 指定された要 がnullである 合
    • put

      public void put(E e)
      指定された要 をこの遅延キューに挿入します。 キューがアンバウンド形式であるため、このメソッドはブロックを実行しません。
      定義:
      put、インタフェースBlockingQueue<E extends Delayed>
      パラメータ:
      e - 追 する要 
      スロー:
      NullPointerException - 指定された要 がnullである 合
    • offer

      public boolean offer(E e, long timeout, TimeUnit unit)
      指定された要 をこの遅延キューに挿入します。 キューがアンバウンド形式であるため、このメソッドはブロックを実行しません。
      定義:
      offer、インタフェースBlockingQueue<E extends Delayed>
      パラメータ:
      e - 追 する要 
      timeout - メソッドがブロックを実行することはないため、このパラメータは無視される
      unit - メソッドがブロックを実行することはないため、このパラメータは無視される
      戻り値:
      true
      スロー:
      NullPointerException - 指定された要 がnullである 合
    • poll

      public E poll()
      このキューの「期限切れヘッド」を取得して削除するか、このキューに「失効した要 」がない 合はnullを返します。
      定義:
      poll、インタフェースQueue<E extends Delayed>
      戻り値:
      このキューの「期限切れヘッド」、またはこのキューに遅延が期限切れの要 がない 合はnull
    • take

      public E take() throws InterruptedException
      このキューの「期限切れヘッド」を取得および削除し、必要に応じて、このキューで「失効した要 」が使用可能になるまで待機します。
      定義:
      take、インタフェースBlockingQueue<E extends Delayed>
      戻り値:
      このキューの「期限切れヘッド」
      スロー:
      InterruptedException - 待機中に割込みが発生した 合
    • poll

      public E poll(long timeout, TimeUnit unit) throws InterruptedException
      このキューの「期限切れヘッド」を取得および削除し、必要に応じて、このキューで「失効した要 」が使用可能になるか、指定された待機時間が期限切れになるまで待機します。
      定義:
      poll、インタフェースBlockingQueue<E extends Delayed>
      パラメータ:
      timeout - 処理を中止するまでの待機時間。単位はunit
      unit - timeoutパラメータの解釈方法を決定するTimeUnit
      戻り値:
      このキューの「期限切れヘッド」、または指定した待機時間が経過した後、遅延が失効した要 が使用可能になる前にnull
      スロー:
      InterruptedException - 待機中に割込みが発生した 合
    • remove

      public E remove()
      このキューの「期限切れヘッド」を取得して削除するか、このキューに「失効した要 」がない 合は例外をスローします。
      定義:
      インタフェースQueue<E extends Delayed>内のremove
      オーバーライド:
      クラスAbstractQueue<E extends Delayed>remove
      戻り値:
      このキューの「期限切れヘッド」
      スロー:
      NoSuchElementException - このキューに遅延が失効した要 がない 合
      導入されたバージョン:
      21
    • peek

      public E peek()
      このキューの「指導者」を取得する(た し削除しない)か、このキューが空の 合はnullを返します。 pollとは異なり、キュー内に期限切れの要 が存在しない 合、このメソッドは次に期限が切れる要 を返します(存在する 合)。
      定義:
      peek、インタフェースQueue<E extends Delayed>
      戻り値:
      このキューの「指導者」、またはこのキューが空の 合はnull
    • size

      public int size()
      次のインタフェースからコピーされた説明: Collection
      このコレクション中の要 の数を返します。 このコレクションに複数のInteger.MAX_VALUE要 が含まれている 合は、Integer.MAX_VALUEを返します。
      定義:
      size、インタフェースCollection<E extends Delayed>
      戻り値:
      このコレクションの要 数
    • drainTo

      public int drainTo(Collection<? super E> c)
      インタフェースからコピーされた説明: BlockingQueue
      このキューから利用可能なすべての要 を削除し、それらを指定されたコレクションに追 します。 このオペレーションは、このキューを繰返しポーリングする 合よりも効率的な 合があります。 コレクションcに要 を追 しようとしたときに障害が発生すると、関連する例外のスロー時に、要 がこのキューとコレクションのいずれにも存在しない 合と、一方または両方に存在する 合があります。 キューをそれ自体に排出しようとすると、IllegalArgumentExceptionがスローされます。 また、オペレーションの進行中に指定されたコレクションが変更された 合の、このオペレーションの動作は定義されていません。
      定義:
      drainTo、インタフェースBlockingQueue<E extends Delayed>
      パラメータ:
      c - 要 の転送先のコレクション
      戻り値:
      転送された要 の数
      スロー:
      UnsupportedOperationException - 指定されたコレクションで追 の要 がサポートされていない 合
      ClassCastException - このキューの要 のクラスが原 で、その要 を指定されたコレクションに追 できない 合
      NullPointerException - 指定されたコレクションがnullである 合
      IllegalArgumentException - 指定されたコレクションがこのキューである 合、またはこのキューの要 のあるプロパティが原 で指定されたコレクションに追 できない 合
    • drainTo

      public int drainTo(Collection<? super E> c, int maxElements)
      インタフェースからコピーされた説明: BlockingQueue
      指定された数以内の利用可能な要 をこのキューから削除し、指定されたコレクションに追 します。 コレクションcに要 を追 しようとしたときに障害が発生すると、関連する例外のスロー時に、要 がこのキューとコレクションのいずれにも存在しない 合と、一方または両方に存在する 合があります。 キューをそれ自体に排出しようとすると、IllegalArgumentExceptionがスローされます。 また、オペレーションの進行中に指定されたコレクションが変更された 合の、このオペレーションの動作は定義されていません。
      定義:
      drainTo、インタフェースBlockingQueue<E extends Delayed>
      パラメータ:
      c - 要 の転送先のコレクション
      maxElements - 転送する要 の最大数
      戻り値:
      転送された要 の数
      スロー:
      UnsupportedOperationException - 指定されたコレクションで追 の要 がサポートされていない 合
      ClassCastException - このキューの要 のクラスが原 で、その要 を指定されたコレクションに追 できない 合
      NullPointerException - 指定されたコレクションがnullである 合
      IllegalArgumentException - 指定されたコレクションがこのキューである 合、またはこのキューの要 のあるプロパティが原 で指定されたコレクションに追 できない 合
    • clear

      public void clear()
      すべての要 をこの遅延キューから原子的に削除します。 この呼出しが戻ると、キューは空になります。 有効期限内の遅延を持つ要 は待機せず、単にキューから 棄されます。
      定義:
      clear、インタフェースCollection<E extends Delayed>
      オーバーライド:
      clear、クラスAbstractQueue<E extends Delayed>
    • remainingCapacity

      public int remainingCapacity()
      DelayQueueは容量制限がないため、常にInteger.MAX_VALUEを返します。
      定義:
      remainingCapacity、インタフェースBlockingQueue<E extends Delayed>
      戻り値:
      Integer.MAX_VALUE
    • toArray

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

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

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

      定義:
      toArray、インタフェースCollection<E extends Delayed>
      オーバーライド:
      toArray、クラスAbstractCollection<E extends Delayed>
      戻り値:
      このキューのすべての要 が含まれている配列
    • toArray

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

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

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

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

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

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

      public boolean remove(Object o)
      指定された要 の単一のインスタンスがこのキューに存在する 合は、期限切れかどうかにかかわらず、キューから削除します。
      定義:
      remove、インタフェースBlockingQueue<E extends Delayed>
      定義:
      remove、インタフェースCollection<E extends Delayed>
      オーバーライド:
      remove、クラスAbstractCollection<E extends Delayed>
      パラメータ:
      o - このコレクションから削除される要 (その要 が存在する 合)
      戻り値:
      この呼出しの結果として要 が削除された 合はtrue
    • iterator

      public Iterator<E> iterator()
      このキュー内のすべての要 (期限切れと有効期限内の両方)についてのイテレータを返します。 イテレータは特定の 序で要 を返しません。

      返されるイテレータは弱一貫性を保持します。

      定義:
      iterator、インタフェースCollection<E extends Delayed>
      定義:
      iterator、インタフェースIterable<E extends Delayed>
      定義:
      iterator、クラスAbstractCollection<E extends Delayed>
      戻り値:
      このキュー内の要 のイテレータ