PriorityBlockingQueue 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue
相同的排序规则,并提供阻止检索操作。
[Android.Runtime.Register("java/util/concurrent/PriorityBlockingQueue", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public class PriorityBlockingQueue : Java.Util.AbstractQueue, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable, Java.Util.Concurrent.IBlockingQueue
[<Android.Runtime.Register("java/util/concurrent/PriorityBlockingQueue", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type PriorityBlockingQueue = class
inherit AbstractQueue
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface IBlockingQueue
interface IQueue
interface ICollection
interface IIterable
- 继承
- 属性
- 实现
注解
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue
相同的排序规则,并提供阻止检索操作。 虽然此队列在逻辑上是无限制的,但尝试添加可能会失败,因为资源耗尽 (导致 OutOfMemoryError
) 。 此类不允许 null
元素。 依赖于可比自然排序的优先级队列也不允许插入不可比较的对象, (这样做会导致 ClassCastException
) 。
此类及其迭代器实现 和 接口的所有 <em>可选</em> 方法Collection
。Iterator
方法#iterator()
中提供的迭代器和方法#spliterator()
><中提供的拆分器不<>保证按任何特定顺序遍历 PriorityBlockingQueue 的元素。 如果需要有序遍历,请考虑使用 Arrays.sort(pq.toArray())
。 此外,方法drainTo
可用于<>按优先级顺序删除/删除<>部分或所有元素,并将其放置在另一个集合中。
此类上的操作无法保证优先级相等的元素的排序。 如果需要强制实施排序,可以定义使用辅助键中断主要优先级值中的关系的自定义类或比较器。 例如,下面是一个类,该类将先入先出的绑定应用于可比较的元素。 若要使用它,请插入 而不是 new FIFOEntry(anEntry)
普通条目对象。
{@code
class FIFOEntry<E extends Comparable<? super E>>
implements Comparable<FIFOEntry<E>> {
static final AtomicLong seq = new AtomicLong();
final long seqNum;
final E entry;
public FIFOEntry(E entry) {
seqNum = seq.getAndIncrement();
this.entry = entry;
}
public E getEntry() { return entry; }
public int compareTo(FIFOEntry<E> other) {
int res = entry.compareTo(other.entry);
if (res == 0 && other.entry != this.entry)
res = (seqNum < other.seqNum ? -1 : 1);
return res;
}
}}
此类是 Java 集合框架的成员。
在 1.5 中添加。
的 java.util.concurrent.PriorityBlockingQueue
Java 文档。
此页面的部分内容是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的术语使用。
构造函数
PriorityBlockingQueue() |
|
PriorityBlockingQueue(ICollection) |
创建包含 |
PriorityBlockingQueue(Int32) |
创建具有指定初始容量的 , |
PriorityBlockingQueue(Int32, IComparator) |
创建具有指定初始容量的 , |
PriorityBlockingQueue(IntPtr, JniHandleOwnership) |
创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。 |
属性
Class |
返回此 |
Handle |
基础 Android 实例的句柄。 (继承自 Object) |
IsEmpty |
要添加 (继承自 AbstractCollection) |
JniIdentityHashCode |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |
JniPeerMembers |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |
PeerReference |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |
ThresholdClass |
此 API 支持 Mono for Android 基础结构,不应直接从代码使用。 |
ThresholdType |
此 API 支持 Mono for Android 基础结构,不应直接从代码使用。 |
方法
Add(Object) |
要添加 (继承自 AbstractCollection) |
AddAll(ICollection) |
要添加 (继承自 AbstractCollection) |
Clear() |
要添加 (继承自 AbstractCollection) |
Clone() |
创建并返回此对象的副本。 (继承自 Object) |
Comparator() |
返回用于对此队列中的元素进行排序的比较器,或者 |
Contains(Object) |
要添加 (继承自 AbstractCollection) |
ContainsAll(ICollection) |
要添加 (继承自 AbstractCollection) |
Dispose() |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |
Dispose(Boolean) |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |
DrainTo(ICollection) |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |
DrainTo(ICollection, Int32) |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |
Element() |
检索(但不删除)此队列的头。 (继承自 AbstractQueue) |
Equals(Object) |
指示其他某个对象是否“等于”此对象。 (继承自 Object) |
ForEach(IConsumer) |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |
GetHashCode() |
返回对象的哈希代码值。 (继承自 Object) |
Iterator() |
返回此队列中元素的迭代器。 |
JavaFinalize() |
当垃圾回收确定不再引用对象时,由对象上的垃圾回收器调用。 (继承自 Object) |
Notify() |
唤醒正在等待此对象的监视器的单个线程。 (继承自 Object) |
NotifyAll() |
唤醒正在等待此对象的监视器的所有线程。 (继承自 Object) |
Offer(Object) |
将指定的元素插入此优先级队列。 |
Offer(Object, Int64, TimeUnit) |
将指定的元素插入此优先级队列。 |
Peek() |
检索(但不删除)此队列的头,如果此队列为空,则 |
Poll() |
检索并删除此队列的头,如果此队列为空,则返回 |
Poll(Int64, TimeUnit) |
检索并删除此队列的头,并在必要时等待指定的等待时间,使元素变得可用。 |
Put(Object) |
将指定的元素插入此优先级队列。 |
RemainingCapacity() |
始终返回 , |
Remove() |
检索并删除此队列的头。 (继承自 AbstractQueue) |
Remove(Object) |
要添加 (继承自 AbstractCollection) |
RemoveAll(ICollection) |
要添加 (继承自 AbstractCollection) |
RemoveIf(IPredicate) |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |
RetainAll(ICollection) |
要添加 (继承自 AbstractCollection) |
SetHandle(IntPtr, JniHandleOwnership) |
设置 Handle 属性。 (继承自 Object) |
Size() |
返回此 |
Spliterator() |
在此 |
Take() |
检索并删除此队列的头,并在必要时等待元素可用。 |
ToArray() |
要添加 (继承自 AbstractCollection) |
ToArray(Object[]) |
要添加 (继承自 AbstractCollection) |
ToArray<T>() |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |
ToString() |
返回对象的字符串表示形式。 (继承自 Object) |
UnregisterFromRuntime() |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |
Wait() |
导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>。<> (继承自 Object) |
Wait(Int64) |
导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<> (继承自 Object) |
Wait(Int64, Int32) |
导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<> (继承自 Object) |
显式接口实现
IJavaPeerable.Disposed() |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |
IJavaPeerable.DisposeUnlessReferenced() |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |
IJavaPeerable.Finalized() |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |
IJavaPeerable.JniManagedPeerState |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |
IJavaPeerable.SetPeerReference(JniObjectReference) |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |
扩展方法
JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
JavaCast<TResult>(IJavaObject) |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |
GetJniTypeName(IJavaPeerable) |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |
OfferAsync(IBlockingQueue, Object) |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |
OfferAsync(IBlockingQueue, Object, Int64, TimeUnit) |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |
PollAsync(IBlockingQueue, Int64, TimeUnit) |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |
PutAsync(IBlockingQueue, Object) |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |
TakeAsync(IBlockingQueue) |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |
ToEnumerable(IIterable) |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |
ToEnumerable<T>(IIterable) |
一个无限制的 BlockingQueue 阻止队列,该队列使用与类 |