ConditionPriorityBlockingQueue

public class ConditionPriorityBlockingQueue
extends Object implements Iterable<T>

java.lang.Object
   ↳ com.android.tradefed.util.ConditionPriorityBlockingQueue<T>


特定の条件に一致するオブジェクトを取得できる PriorityBlockingQueue のようなオペレーションを備えたスレッドセーフ クラス。

イテレーションもスレッドセーフですが、一貫性はありません。キューのコピーはイテレータの作成時に作成され、そのコピーがイテレーションのターゲットとして使用されます。イテレーション中にキューが変更された場合、ConcurrentModificationException はスローされませんが、イテレータにも変更された内容は反映されません。

関連項目:

概要

ネストされたクラス

class ConditionPriorityBlockingQueue.AlwaysMatch<T>

任意のオブジェクトに一致する ConditionPriorityBlockingQueue.IMatcher。 

interface ConditionPriorityBlockingQueue.IMatcher<T>

要素が何らかの条件に一致するかどうかを判断するためのインターフェース。 

パブリック コンストラクタ

ConditionPriorityBlockingQueue()

ConditionPriorityBlockingQueue を作成します。

要素は FIFO 順に優先されます。

ConditionPriorityBlockingQueue(Comparator<T> c)

ConditionPriorityBlockingQueue を作成します。

パブリック メソッド

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)

指定された Comparator 要素 T で判断される最小値(matcher.matches(T)true のキュー内)を取得して削除します。

T poll(long timeout, TimeUnit unit, IMatcher<T> matcher)

指定された Comparator 要素 T で判断される最小値(matcher.matches(T)true のキュー内)を取得して削除します。

T poll(long timeout, TimeUnit unit)

キュー内の最小値(指定された Comparator 要素 T で判断)を取得して削除します。

T poll()

このキューの先頭を取得して削除します。

boolean remove(T object)

このキューからアイテムを削除します。

int size()
T take()

キュー内の最小値(指定された Comparator 要素 T で判断)を取得して削除します。

T take(IMatcher<T> matcher)

matcher.matches(T)true であるキュー内の最初の要素 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 待機中に中断された場合

take

public T take (IMatcher<T> matcher)

matcher.matches(T)true であるキュー内の最初の要素 T を取得して削除します。必要に応じて、そのような要素が使用可能になるまで待機します。

パラメータ
matcher IMatcher: 要素の評価に使用する IMatcher

戻り値
T 一致した要素

例外
InterruptedException 待機中に中断された場合