クラスDelayQueue<E extends Delayed>
- 型パラメータ:
E- このキューに保持されている要素の型
- すべての実装されたインタフェース:
Iterable<E>, Collection<E>, BlockingQueue<E>, Queue<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指定された要素をこの遅延キューに挿入します。voidclear()すべての要素をこの遅延キューから原子的に削除します。intdrainTo(Collection<? super E> c) このキューから利用可能なすべての要素を削除し、それらを指定されたコレクションに追加します。intdrainTo(Collection<? super E> c, int maxElements) 指定された数以内の利用可能な要素をこのキューから削除し、指定されたコレクションに追加します。iterator()このキュー内のすべての要素(期限切れと有効期限内の両方)についてのイテレータを返します。boolean指定された要素をこの遅延キューに挿入します。boolean指定された要素をこの遅延キューに挿入します。peek()このキューの「指導者」を取得する(ただし削除しない)か、このキューが空の場合はnullを返します。poll()void指定された要素をこの遅延キューに挿入します。intDelayQueueは容量制限がないため、常にInteger.MAX_VALUEを返します。remove()boolean指定された要素の単一のインスタンスがこのキューに存在する場合は、期限切れかどうかにかかわらず、キューから削除します。intsize()このコレクション中の要素の数を返します。take()Object[]toArray()このキューの要素がすべて含まれている配列を返します。<T> T[]toArray(T[] a) このキュー内のすべての要素を含む配列を返します。返される配列の実行時の型は、指定された配列の型です。クラスで宣言されたメソッド AbstractQueue
addAll, elementクラスで宣言されたメソッド AbstractCollection
contains, containsAll, isEmpty, removeAll, retainAll, toStringクラスオブジェクトで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitインタフェースで宣言されたメソッド BlockingQueue
containsインタフェースCollectionで宣言されたメソッド
addAll, containsAll, equals, hashCode, isEmpty, parallelStream, removeAll, removeIf, retainAll, spliterator, stream, toArray
-
コンストラクタの詳細
-
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
指定された要素をこの遅延キューに挿入します。 キューがアンバウンド形式であるため、このメソッドはブロックを実行しません。- 定義:
offer、インタフェースBlockingQueue<E extends Delayed>- パラメータ:
e- 追加する要素timeout- メソッドがブロックを実行することはないため、このパラメータは無視されるunit- メソッドがブロックを実行することはないため、このパラメータは無視される- 戻り値:
true- スロー:
NullPointerException- 指定された要素がnullである場合
-
poll
-
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- 処理を中止するまでの待機時間。単位はunitunit-timeoutパラメータの解釈方法を決定するTimeUnit- 戻り値:
- このキューの「期限切れヘッド」、または指定した待機時間が経過した後、遅延が失効した要素が使用可能になる前に
null - スロー:
InterruptedException- 待機中に割込みが発生した場合
-
remove
-
peek
-
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
-