ConditionPriorityBlockingQueue
public
class
ConditionPriorityBlockingQueue
extends Object
java.lang.Object | |
↳ | com.android.tradefed.util.ConditionPriorityBlockingQueue<T> |
特定の条件に一致するオブジェクトを取得できる ERROR(/PriorityBlockingQueue)
のようなオペレーションを備えたスレッドセーフ クラス。
イテレーションもスレッドセーフですが、整合性はありません。キューのコピーはイテレータの作成時に作成され、そのコピーがイテレーション ターゲットとして使用されます。イテレーション中にキューが変更された場合、ERROR(/ConcurrentModificationException)
はスローされませんが、イテレータにも変更された内容は反映されません。
概要
ネストされたクラス | |
---|---|
class |
ConditionPriorityBlockingQueue.AlwaysMatch<T>
任意のオブジェクトに一致する |
interface |
ConditionPriorityBlockingQueue.IMatcher<T>
要素がなんらかの条件に一致するかどうかを判断するためのインターフェース。 |
パブリック コンストラクタ | |
---|---|
ConditionPriorityBlockingQueue()
要素は FIFO 順に優先されます。 |
|
ConditionPriorityBlockingQueue(
|
パブリック メソッド | |
---|---|
boolean
|
add(T addedElement)
指定した要素をこのキューに挿入します。 |
T
|
addUnique(IMatcher<T> matcher, T object)
このキューにアイテムを追加し、指定された条件に一致する既存のオブジェクトを置き換えます。 |
void
|
clear()
このキューからすべての要素を削除します。 |
boolean
|
contains(T object)
オブジェクトが現在このキュー内にあるかどうかを判断します。 |
|
getCopy()
キューの内容のコピーを取得します。 |
|
iterator()
|
T
|
poll(long timeout, TimeUnit unit)
キュー内の指定された |
T
|
poll(long timeout, TimeUnit unit, IMatcher<T> matcher)
キュー内の指定された |
T
|
poll(IMatcher<T> matcher)
キュー内の指定された |
T
|
poll()
このキューの先頭を取得して削除します。 |
boolean
|
remove(T object)
このキューからアイテムを削除します。 |
int
|
size()
|
T
|
take()
キュー内の指定された |
T
|
take(IMatcher<T> matcher)
matcher.matches(T) が |
パブリック コンストラクタ
ConditionPriorityBlockingQueue
public ConditionPriorityBlockingQueue ()
ConditionPriorityBlockingQueue
を作成します。
要素は FIFO 順に優先されます。
ConditionPriorityBlockingQueue
public ConditionPriorityBlockingQueue (c)
ConditionPriorityBlockingQueue
を作成します。
パラメータ | |
---|---|
c |
: キューの優先度付けに使用される ERROR(/Comparator) 。 |
パブリック メソッド
追加
public boolean add (T addedElement)
指定した要素をこのキューに挿入します。キューは無制限であるため、このメソッドはブロックされません。
パラメータ | |
---|---|
addedElement |
T : 追加する要素 |
戻り値 | |
---|---|
boolean |
true |
例外 | |
---|---|
ClassCastException |
指定された要素を、優先キューの順序に従って、現在優先キューにある要素と比較できない場合 |
NullPointerException |
指定された要素が null の場合 |
addUnique
public T addUnique (IMatcher<T> matcher, T object)
このキューにアイテムを追加し、指定された条件に一致する既存のオブジェクトを置き換えます。
パラメータ | |
---|---|
matcher |
IMatcher : 既存のオブジェクトを評価するマッチャー |
object |
T : 追加するオブジェクト |
戻り値 | |
---|---|
T |
置き換えられたオブジェクト、または存在しない場合は null |
消去
public void clear ()
このキューからすべての要素を削除します。
次を含む
public boolean contains (T object)
オブジェクトが現在このキュー内にあるかどうかを判断します。
パラメータ | |
---|---|
object |
T : 検索するオブジェクト |
戻り値 | |
---|---|
boolean |
指定されたオブジェクトがキュー内にある場合: true 。そうでない場合は false> 。 |
getCopy
publicgetCopy ()
キューの内容のコピーを取得します。
戻り値 | |
---|---|
|
iterator
publiciterator ()
戻り値 | |
---|---|
|
アンケート
public T poll (long timeout, TimeUnit unit)
キュー内の指定された ERROR(/Comparator)
要素 T によって判断される最小値を取得して削除します。
要素が利用可能になるまで最大 timeout 時間ブロックします。
パラメータ | |
---|---|
timeout |
long : 要素が使用可能になるまで待機する時間 |
unit |
TimeUnit : タイムアウトの ERROR(/TimeUnit) |
戻り値 | |
---|---|
T |
一致する最小要素、または一致する要素がない場合は null |
アンケート
public T poll (long timeout, TimeUnit unit, IMatcher<T> matcher)
キュー内の指定された ERROR(/Comparator)
要素 T(matcher.matches(T) が true
の場合)で判断される最小値を取得して削除します。
要素が利用可能になるまで最大 timeout 時間ブロックします。
パラメータ | |
---|---|
timeout |
long : 要素が使用可能になるまで待機する時間 |
unit |
TimeUnit : タイムアウトの ERROR(/TimeUnit) |
matcher |
IMatcher : 要素の評価に使用する IMatcher |
戻り値 | |
---|---|
T |
一致する最小要素、または一致する要素がない場合は null |
アンケート
public T poll (IMatcher<T> matcher)
キュー内の指定された ERROR(/Comparator)
要素 T(matcher.matches(T) が true
の場合)で判断される最小値を取得して削除します。
パラメータ | |
---|---|
matcher |
IMatcher : 要素の評価に使用する IMatcher |
戻り値 | |
---|---|
T |
一致する最小要素、または一致する要素がない場合は null |
アンケート
public T poll ()
このキューの先頭を取得して削除します。
戻り値 | |
---|---|
T |
このキューの先頭、またはキューが空の場合は null |
削除
public boolean remove (T object)
このキューからアイテムを削除します。
パラメータ | |
---|---|
object |
T : 削除するオブジェクト |
戻り値 | |
---|---|
boolean |
指定されたオブジェクトがキューから削除された場合: true 。そうでない場合は false> 。 |
size
public int size ()
戻り値 | |
---|---|
int |
キュー内の要素数 |
取る
public T take ()
キュー内の指定された ERROR(/Comparator)
要素 T によって判断される最小値を取得して削除します。
要素が使用可能になるまで無期限にブロックします。
戻り値 | |
---|---|
T |
このキューの先頭 |
例外 | |
---|---|
InterruptedException |
待機中に中断された場合 |