E
- このコレクション内に保持される要素の型public class DelayQueue<E extends Delayed> extends AbstractQueue<E> implements BlockingQueue<E>
ブロッキング・キュー
で、遅延時間が経過後にのみ、要素を取得できます。キューの先頭は、遅延の期限がもっとも前に切れたDelayed
要素です。遅延の期限が切れていない場合は、先頭が存在せず、poll
はnull
を返します。期限切れは、要素のgetDelay(TimeUnit.NANOSECONDS)
メソッドがゼロ以下の値を返した場合に発生します。take
やpoll
を使用して有効期限内の要素を削除できない場合でも、それらは通常の要素として扱われます。たとえば、size
メソッドは、期限切れの要素と有効期限内の要素の両方のカウントを返します。このキューでは、null要素は許可されません。
このクラスとそのイテレータは、Collection
およびIterator
インタフェースの任意メソッドすべてを実装します。iterator()
メソッド内で提供されるIteratorでは、特定の順序でDelayQueueの要素をトラバースすることは保証されません。
このクラスは、Java Collections Frameworkのメンバーです。
コンストラクタと説明 |
---|
DelayQueue()
新しい
DelayQueue を作成します。これは、最初は空です。 |
DelayQueue(Collection<? extends E> c)
DelayQueue を作成します。これは、初期状態でDelayed インスタンスの指定されたコレクションの要素を含みます。 |
修飾子と型 | メソッドと説明 |
---|---|
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()
このキューの先頭を取得しますが、削除しません。キューが空の場合は
null を返します。 |
E |
poll()
このキューの先頭を取得および削除します。このキューに期限切れの遅延がある要素が存在しない場合は
null を返します。 |
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)
このキュー内のすべての要素を含む配列を返します。返される配列の実行時の型は、指定された配列の型です。
|
addAll, element, remove
contains, containsAll, isEmpty, removeAll, retainAll, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
contains
addAll, containsAll, equals, hashCode, isEmpty, parallelStream, removeAll, removeIf, retainAll, spliterator, stream
public DelayQueue()
DelayQueue
を作成します。これは、最初は空です。public DelayQueue(Collection<? extends E> c)
DelayQueue
を作成します。これは、初期状態でDelayed
インスタンスの指定されたコレクションの要素を含みます。c
- 初期状態で含む要素のコレクションNullPointerException
- 指定されたコレクションまたはそのいずれかの要素がnullである場合public boolean add(E e)
add
、インタフェース: Collection<E extends Delayed>
add
、インタフェース: BlockingQueue<E extends Delayed>
add
、インタフェース: Queue<E extends Delayed>
add
、クラス: AbstractQueue<E extends Delayed>
e
- 追加する要素true
(Collection.add(E)
で指定されているとおり)NullPointerException
- 指定された要素がnullである場合public boolean offer(E e)
offer
、インタフェース: BlockingQueue<E extends Delayed>
offer
、インタフェース: Queue<E extends Delayed>
e
- 追加する要素true
NullPointerException
- 指定された要素がnullである場合public void put(E e)
put
、インタフェース: BlockingQueue<E extends Delayed>
e
- 追加する要素NullPointerException
- 指定された要素がnullである場合public boolean offer(E e, long timeout, TimeUnit unit)
offer
、インタフェース: BlockingQueue<E extends Delayed>
e
- 追加する要素timeout
- メソッドがブロックを実行することはないため、このパラメータは無視されるunit
- メソッドがブロックを実行することはないため、このパラメータは無視されるtrue
NullPointerException
- 指定された要素がnullである場合public E poll()
null
を返します。public E take() throws InterruptedException
take
、インタフェース: BlockingQueue<E extends Delayed>
InterruptedException
- 待機中に割込みが発生した場合public E poll(long timeout, TimeUnit unit) throws InterruptedException
poll
、インタフェース: BlockingQueue<E extends Delayed>
timeout
- 処理を中止するまでの待機時間。単位はunit
unit
- timeout
パラメータの解釈方法を決定するTimeUnit
null
InterruptedException
- 待機中に割込みが発生した場合public E peek()
null
を返します。poll
とは異なり、キュー内に期限切れの要素が存在しない場合、このメソッドは次に期限が切れる要素を返します(存在する場合)。public int size()
Collection
size
、インタフェース: Collection<E extends Delayed>
size
、クラス: AbstractCollection<E extends Delayed>
public int drainTo(Collection<? super E> c)
BlockingQueue
c
に要素を追加しようとしたときに障害が発生すると、関連する例外のスロー時に、要素がこのキューとコレクションのいずれにも存在しない場合と、一方または両方に存在する場合があります。キューをそれ自体に排出しようとすると、IllegalArgumentException
がスローされます。また、オペレーションの進行中に指定されたコレクションが変更された場合の、このオペレーションの動作は定義されていません。drainTo
、インタフェース: BlockingQueue<E extends Delayed>
c
- 要素の転送先のコレクションUnsupportedOperationException
- 指定されたコレクションで追加の要素がサポートされていない場合ClassCastException
- このキューの要素のクラスが原因で、その要素を指定されたコレクションに追加できない場合NullPointerException
- 指定されたコレクションがnullである場合IllegalArgumentException
- 指定されたコレクションがこのキューである場合、またはこのキューの要素のあるプロパティが原因で指定されたコレクションに追加できない場合public int drainTo(Collection<? super E> c, int maxElements)
BlockingQueue
c
に要素を追加しようとしたときに障害が発生すると、関連する例外のスロー時に、要素がこのキューとコレクションのいずれにも存在しない場合と、一方または両方に存在する場合があります。キューをそれ自体に排出しようとすると、IllegalArgumentException
がスローされます。また、オペレーションの進行中に指定されたコレクションが変更された場合の、このオペレーションの動作は定義されていません。drainTo
、インタフェース: BlockingQueue<E extends Delayed>
c
- 要素の転送先のコレクションmaxElements
- 転送する要素の最大数UnsupportedOperationException
- 指定されたコレクションで追加の要素がサポートされていない場合ClassCastException
- このキューの要素のクラスが原因で、その要素を指定されたコレクションに追加できない場合NullPointerException
- 指定されたコレクションがnullである場合IllegalArgumentException
- 指定されたコレクションがこのキューである場合、またはこのキューの要素のあるプロパティが原因で指定されたコレクションに追加できない場合public void clear()
clear
、インタフェース: Collection<E extends Delayed>
clear
、クラス: AbstractQueue<E extends Delayed>
public int remainingCapacity()
DelayQueue
は容量制限がないため、常にInteger.MAX_VALUE
を返します。remainingCapacity
、インタフェース: BlockingQueue<E extends Delayed>
Integer.MAX_VALUE
public Object[] toArray()
返される配列は、それへの参照がこのキューで保持されない場合に、安全になります。(つまり、このメソッドは新しい配列を割り当てる)。このため、呼出し側は、返された配列を自由に変更できます。
このメソッドは、配列ベースのAPIとコレクションベースのAPIの間の橋渡し役として機能します。
toArray
、インタフェース: Collection<E extends Delayed>
toArray
、クラス: AbstractCollection<E extends Delayed>
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である場合public boolean remove(Object o)
remove
、インタフェース: Collection<E extends Delayed>
remove
、インタフェース: BlockingQueue<E extends Delayed>
remove
、クラス: AbstractCollection<E extends Delayed>
o
- このコレクションから削除される要素(その要素が存在する場合) バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.