Share via


PriorityBlockingQueue 类

定义

一个无限制的 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> 方法CollectionIterator 方法#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.PriorityBlockingQueueJava 文档。

此页面的部分内容是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的术语使用。

构造函数

PriorityBlockingQueue()

PriorityBlockingQueue创建具有默认初始容量 (11) 的 ,该) 根据其可比自然顺序对其元素进行排序。

PriorityBlockingQueue(ICollection)

创建包含 PriorityBlockingQueue 指定集合中的元素的 。

PriorityBlockingQueue(Int32)

创建具有指定初始容量的 , PriorityBlockingQueue 该容量根据其可比较自然顺序对其元素进行排序。

PriorityBlockingQueue(Int32, IComparator)

创建具有指定初始容量的 , PriorityBlockingQueue 该容量根据指定的比较器对其元素进行排序。

PriorityBlockingQueue(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

属性

Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
IsEmpty

要添加

(继承自 AbstractCollection)
JniIdentityHashCode

一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

(继承自 Object)
JniPeerMembers

一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

PeerReference

一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

(继承自 Object)
ThresholdClass

此 API 支持 Mono for Android 基础结构,不应直接从代码使用。

ThresholdType

此 API 支持 Mono for Android 基础结构,不应直接从代码使用。

方法

Add(Object)

要添加

(继承自 AbstractCollection)
AddAll(ICollection)

要添加

(继承自 AbstractCollection)
Clear()

要添加

(继承自 AbstractCollection)
Clone()

创建并返回此对象的副本。

(继承自 Object)
Comparator()

返回用于对此队列中的元素进行排序的比较器,或者 null 如果此队列使用其元素的可比自然顺序,则返回比较器。

Contains(Object)

要添加

(继承自 AbstractCollection)
ContainsAll(ICollection)

要添加

(继承自 AbstractCollection)
Dispose()

一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

(继承自 Object)
Dispose(Boolean)

一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

(继承自 Object)
DrainTo(ICollection)

一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

DrainTo(ICollection, Int32)

一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

Element()

检索(但不删除)此队列的头。

(继承自 AbstractQueue)
Equals(Object)

指示其他某个对象是否“等于”此对象。

(继承自 Object)
ForEach(IConsumer)

一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
Iterator()

返回此队列中元素的迭代器。

JavaFinalize()

当垃圾回收确定不再引用对象时,由对象上的垃圾回收器调用。

(继承自 Object)
Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
Offer(Object)

将指定的元素插入此优先级队列。

Offer(Object, Int64, TimeUnit)

将指定的元素插入此优先级队列。

Peek()

检索(但不删除)此队列的头,如果此队列为空,则 null 返回 。

Poll()

检索并删除此队列的头,如果此队列为空,则返回 null

Poll(Int64, TimeUnit)

检索并删除此队列的头,并在必要时等待指定的等待时间,使元素变得可用。

Put(Object)

将指定的元素插入此优先级队列。

RemainingCapacity()

始终返回 ,Integer.MAX_VALUEPriorityBlockingQueue因为 不受容量限制。

Remove()

检索并删除此队列的头。

(继承自 AbstractQueue)
Remove(Object)

要添加

(继承自 AbstractCollection)
RemoveAll(ICollection)

要添加

(继承自 AbstractCollection)
RemoveIf(IPredicate)

一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

RetainAll(ICollection)

要添加

(继承自 AbstractCollection)
SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
Size()

返回此 Collection 包含的对象数的计数。

Spliterator()

在此 Spliterator 队列中的元素上返回 。

Take()

检索并删除此队列的头,并在必要时等待元素可用。

ToArray()

要添加

(继承自 AbstractCollection)
ToArray(Object[])

要添加

(继承自 AbstractCollection)
ToArray<T>()

一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

(继承自 Object)
ToString()

返回对象的字符串表示形式。

(继承自 Object)
UnregisterFromRuntime()

一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

(继承自 Object)
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 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

(继承自 Object)
IJavaPeerable.Finalized()

一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

(继承自 Object)

扩展方法

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

GetJniTypeName(IJavaPeerable)

一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

OfferAsync(IBlockingQueue, Object)

一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

OfferAsync(IBlockingQueue, Object, Int64, TimeUnit)

一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

PollAsync(IBlockingQueue, Int64, TimeUnit)

一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

PutAsync(IBlockingQueue, Object)

一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

TakeAsync(IBlockingQueue)

一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

ToEnumerable(IIterable)

一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

ToEnumerable<T>(IIterable)

一个无限制的 BlockingQueue 阻止队列,该队列使用与类 PriorityQueue 相同的排序规则,并提供阻止检索操作。

适用于