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