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)
检索并移除队列中的第一个元素 T,其中 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 |
添加唯一
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>
否则。 |
获取副本
publicgetCopy ()
获取队列内容的副本。
返回 | |
---|---|
|
迭代器
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 |
在等待期间中断 |