E - このコレクション内に保持される要素の型public class LinkedTransferQueue<E> extends AbstractQueue<E> implements TransferQueue<E>, Serializable
TransferQueue です。このキューは、指定された任意のプロデューサに関して、FIFO (先入れ先出し) で要素を順序付けします。キューの先頭は、特定のプロデューサに関して、もっとも長い時間キューに入っていた要素です。キューの末尾は、特定のプロデューサに関して、もっとも短い時間キューに入っていた要素です。
大半のコレクションとは異なり、size メソッドは一定時間のオペレーションではないことに留意してください。これらのキューには非同期という特性があるため、現在の要素数を判定するには要素全体をトラバースする必要があります。したがって、このコレクションがトラバーサル中に変更された場合、不正確な結果が報告されることがあります。また、addAll、removeAll、retainAll、containsAll、equals、および toArray の一括オペレーションについて、原子的な実行は保証されていません。たとえば、addAll オペレーションと並行して動作するイテレータは、追加された要素の一部しか表示しないことがあります。
このクラスとそのイテレータは、Collection および Iterator インタフェースの任意メソッドすべてを実装します。
メモリー整合性効果:ほかの並行処理コレクションと同様、オブジェクトを LinkedTransferQueue に配置する前のスレッド内のアクションは、別のスレッドでのその要素へのアクセスまたは LinkedTransferQueue からの削除に続くアクションよりも前に発生します。
このクラスは、Java Collections Framework のメンバーです。
| コンストラクタと説明 |
|---|
LinkedTransferQueue()
初期状態で空の
LinkedTransferQueue を作成します。 |
LinkedTransferQueue(Collection<? extends E> c)
指定されたコレクションの要素を初期状態で含む (要素はコレクションのイテレータのトラバーサル順に追加)
LinkedTransferQueue を作成します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
boolean |
add(E e)
キューの末尾に、指定された要素を挿入します。
|
boolean |
contains(Object o)
指定された要素がキューに含まれている場合に
true を返します。 |
int |
drainTo(Collection<? super E> c)
このキューから利用可能なすべての要素を削除し、それらを指定されたコレクションに追加します。
|
int |
drainTo(Collection<? super E> c, int maxElements)
指定された数以内の利用可能な要素をこのキューから削除し、指定されたコレクションに追加します。
|
int |
getWaitingConsumerCount()
BlockingQueue.take() または時間指定の poll 経由で要素を受け取ることを待機しているコンシューマの推定数を返します。 |
boolean |
hasWaitingConsumer()
|
boolean |
isEmpty()
キューに要素がない場合に
true を返します。 |
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()
LinkedTransferQueue は容量制約を受けないため、常に Integer.MAX_VALUE を返します。 |
boolean |
remove(Object o)
指定された要素の単一のインスタンスがこのキューに存在する場合は、キューから削除します。
|
int |
size()
キュー内にある要素の数を返します。
|
E |
take()
このキューの先頭を取得して削除します。必要に応じて、要素が利用可能になるまで待機します。
|
void |
transfer(E e)
待機する必要があれば待機し、要素をコンシューマに転送します。
|
boolean |
tryTransfer(E e)
可能な場合、待機中のコンシューマに要素をただちに転送します。
|
boolean |
tryTransfer(E e, long timeout, TimeUnit unit)
タイムアウトが経過する前に要素をコンシューマに転送できる場合には、そうします。
|
addAll, clear, element, removecontainsAll, removeAll, retainAll, toArray, toArray, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitaddAll, clear, containsAll, equals, hashCode, removeAll, retainAll, toArray, toArraypublic LinkedTransferQueue()
LinkedTransferQueue を作成します。public LinkedTransferQueue(Collection<? extends E> c)
LinkedTransferQueue を作成します。c - 初期状態で含む要素のコレクションNullPointerException - 指定されたコレクションまたはそのいずれかの要素が null である場合public void put(E e)
put、インタフェース: BlockingQueue<E>e - 追加する要素NullPointerException - 指定された要素が null である場合public boolean offer(E e, long timeout, TimeUnit unit)
false を返しません。offer、インタフェース: BlockingQueue<E>e - 追加する要素timeout - 処理を中止するまでの待機時間。単位は unitunit - timeout パラメータの解釈方法を決定する TimeUnittrue (BlockingQueue.offer で指定されているとおり)NullPointerException - 指定された要素が null である場合public boolean offer(E e)
false を返しません。offer、インタフェース: BlockingQueue<E>offer、インタフェース: Queue<E>e - 追加する要素true (Queue.offer(E) で指定されているとおり)NullPointerException - 指定された要素が null である場合public boolean add(E e)
IllegalStateException をスローしないか、false を返します。add、インタフェース: Collection<E>add、インタフェース: BlockingQueue<E>add、インタフェース: Queue<E>add、クラス: AbstractQueue<E>e - 追加する要素true (Collection.add(E) で指定されているとおり)NullPointerException - 指定された要素が null である場合public boolean tryTransfer(E e)
より正確には、(take() または時間指定の poll で) 要素を受け取ることを待機しているコンシューマがすでに存在する場合は指定された要素をただちに転送し、それ以外の場合は要素をエンキューせずに false を返します。
tryTransfer、インタフェース: TransferQueue<E>e - 転送する要素true - 要素が転送された場合。それ以外の場合は falseNullPointerException - 指定された要素が null である場合public void transfer(E e) throws InterruptedException
より正確には、指定された要素の受信を (take() または時間指定の poll で) すでに待機しているコンシューマが存在する場合はその要素をただちに転送し、それ以外の場合は指定された要素をこのキューの末尾に挿入し、その要素がコンシューマによって受信されるまで待機します。
transfer、インタフェース: TransferQueue<E>e - 転送する要素NullPointerException - 指定された要素が null である場合InterruptedException - 待機中に割り込まれた場合。この場合、要素はエンキューされたままになりませんpublic boolean tryTransfer(E e, long timeout, TimeUnit unit) throws InterruptedException
より正確には、指定された要素の受信を (take() または時間指定の poll で) すでに待機しているコンシューマが存在する場合はその要素をただちに転送し、それ以外の場合は指定された要素をこのキューの末尾に挿入し、その要素がコンシューマによって受信されるまで待機します。その要素を転送できるようになる前に、指定された待機時間が経過した場合は false を返します。
tryTransfer、インタフェース: TransferQueue<E>e - 転送する要素timeout - 処理を中止するまでの待機時間。単位は unitunit - timeout パラメータの解釈方法を決定する TimeUnit true、完了前に指定された待機時間が経過した場合は false で、この場合、要素はエンキューされたままになりませんNullPointerException - 指定された要素が null である場合InterruptedException - 待機中に割り込まれた場合。この場合、要素はエンキューされたままになりませんpublic E take() throws InterruptedException
BlockingQueuetake、インタフェース: BlockingQueue<E>InterruptedException - 待機中に割り込みが発生した場合public E poll(long timeout, TimeUnit unit) throws InterruptedException
BlockingQueuepoll、インタフェース: BlockingQueue<E>timeout - 処理を中止するまでの待機時間。単位は unitunit - timeout パラメータの解釈方法を決定する TimeUnitInterruptedException - 待機中に割り込みが発生した場合public int drainTo(Collection<? super E> c)
BlockingQueuedrainTo、インタフェース: BlockingQueue<E>c - 要素の転送先のコレクションNullPointerException - 指定されたコレクションが null である場合IllegalArgumentException - 指定されたコレクションがこのキューである場合、またはこのキューの要素のあるプロパティーが原因で指定されたコレクションに追加できない場合public int drainTo(Collection<? super E> c, int maxElements)
BlockingQueuedrainTo、インタフェース: BlockingQueue<E>c - 要素の転送先のコレクションmaxElements - 転送する要素の最大数NullPointerException - 指定されたコレクションが null である場合IllegalArgumentException - 指定されたコレクションがこのキューである場合、またはこのキューの要素のあるプロパティーが原因で指定されたコレクションに追加できない場合public Iterator<E> iterator()
返されるイテレータは「弱一貫性」を持つイテレータであり、ConcurrentModificationException をスローすることはなく、イテレータの構築時に存在した要素をトラバースすることを保証します。また、構築後のすべての変更を反映します (ただし保証されてはいない)。
iterator、インタフェース: Iterable<E>iterator、インタフェース: Collection<E>iterator、クラス: AbstractCollection<E>public boolean isEmpty()
true を返します。isEmpty、インタフェース: Collection<E>isEmpty、クラス: AbstractCollection<E>truepublic boolean hasWaitingConsumer()
TransferQueueBlockingQueue.take() または時間指定の poll 経由で要素を受け取ることを待機しているコンシューマが少なくとも 1 つある場合、true を返します。戻り値は状況の瞬間的な状態です。hasWaitingConsumer、インタフェース: TransferQueue<E>truepublic int size()
Integer.MAX_VALUE より多くの要素がある場合は、Integer.MAX_VALUE を返します。
大半のコレクションとは異なり、このメソッドは一定時間のオペレーションではないことに留意してください。これらのキューには非同期という特性があるため、現在の要素数を判定するには O(n) トラバーサルが必要です。
size、インタフェース: Collection<E>size、クラス: AbstractCollection<E>public int getWaitingConsumerCount()
TransferQueueBlockingQueue.take() または時間指定の poll 経由で要素を受け取ることを待機しているコンシューマの推定数を返します。戻り値は状況の瞬間的な状態の近似であるため、コンシューマが完了したり、待機を中止したりした場合に不正確になることがあります。この値は監視およびヒューリスティックな方法に役立つ場合がありますが、同期制御のためのものではありません。このメソッドの実装は、TransferQueue.hasWaitingConsumer() の実装よりもかなり遅くなる可能性が高くなります。getWaitingConsumerCount、インタフェース: TransferQueue<E>public boolean remove(Object o)
o.equals(e) に該当する要素 e が 1 つ以上含まれている場合は、そのような要素を削除します。指定された要素がこのキューに含まれていた場合、つまり、呼び出しの結果としてこのキューが変更された場合に true を返します。remove、インタフェース: Collection<E>remove、インタフェース: BlockingQueue<E>remove、クラス: AbstractCollection<E>o - キューから削除される要素 (その要素が存在する場合)truepublic boolean contains(Object o)
true を返します。つまり、このキュー内に o.equals(e) のような 1 つ以上の要素 e が含まれている場合、true を返します。contains、インタフェース: Collection<E>contains、インタフェース: BlockingQueue<E>contains、クラス: AbstractCollection<E>o - このキューに含まれているかどうかを調べるオブジェクトtruepublic int remainingCapacity()
LinkedTransferQueue は容量制約を受けないため、常に Integer.MAX_VALUE を返します。remainingCapacity、インタフェース: BlockingQueue<E>Integer.MAX_VALUE (BlockingQueue.remainingCapacity() で指定されているとおり) バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.