Язык

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.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<необязательных>/emCollection интерфейсов и Iterator интерфейсов. Итератор, предоставленный в методе#iterator(), и сплитатор, предоставленный в методе#spliterator(), не<></em> гарантирует обход элементов PriorityBlockingQueue в любом определенном порядке. Если вам нужен упорядоченный обход, рассмотрите возможность использования Arrays.sort(pq.toArray()). Кроме того, метод drainTo можно использовать для <>удаления< или em> некоторых или всех элементов в порядке приоритета и размещения их в другой коллекции.

Операции с этим классом не гарантируют порядок элементов с равным приоритетом. Если необходимо применить упорядочение, можно определить пользовательские классы или компраторы, использующие вторичный ключ для разрыва связей в значениях первичного приоритета. Например, вот класс, который применяет первое в первую очередь разбиение связи к сопоставимым элементам. Чтобы использовать его, вы вставляете 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 документации по java.util.concurrent.PriorityBlockingQueue.

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Конструкторы

Имя. Описание
PriorityBlockingQueue()

Создает начальную PriorityBlockingQueue емкость по умолчанию (11), которая упорядочивает свои элементы в соответствии с их сопоставимым естественным упорядочением.

PriorityBlockingQueue(ICollection)

PriorityBlockingQueue Создает элементы в указанной коллекции.

PriorityBlockingQueue(Int32, IComparator)

PriorityBlockingQueue Создает с указанной начальной емкостью, которая упорядочивает его элементы в соответствии с указанным компратором.

PriorityBlockingQueue(Int32)

PriorityBlockingQueue Создает с указанной начальной емкостью, которая упорядочивает свои элементы в соответствии с их сопоставимым естественным упорядочением.

PriorityBlockingQueue(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

Свойства

Имя. Описание
Class

Возвращает класс среды выполнения этого Objectобъекта.

(Унаследовано от Object)
Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
IsEmpty

Добавление

(Унаследовано от AbstractCollection)
JniIdentityHashCode

Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия.

(Унаследовано от Object)
JniManagedPeerState

Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс PriorityQueue и предоставляет блокирующие операции извлечения.

(Унаследовано от JavaObject)
JniPeerMembers

Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс PriorityQueue и предоставляет блокирующие операции извлечения.

PeerReference

Возвращает ссылку на объект JNI для этого Java однорангового узла.

(Унаследовано от Object)
ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Методы

Имя. Описание
Add(Object)

Добавление

(Унаследовано от AbstractCollection)
AddAll(ICollection)

Добавление

(Унаследовано от AbstractCollection)
Clear()

Добавление

(Унаследовано от AbstractCollection)
Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
Comparator()

Возвращает компратор, используемый для упорядочивания элементов в этой очереди, или null если эта очередь использует сравнимое естественное упорядочение элементов.

Construct(JniObjectReference, JniObjectReferenceOptions)

Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс PriorityQueue и предоставляет блокирующие операции извлечения.

(Унаследовано от JavaObject)
Contains(Object)

Добавление

(Унаследовано от AbstractCollection)
ContainsAll(ICollection)

Добавление

(Унаследовано от AbstractCollection)
Dispose()

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
Dispose(Boolean)

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
DisposeUnlessReferenced()

Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс PriorityQueue и предоставляет блокирующие операции извлечения.

(Унаследовано от JavaObject)
DrainTo(ICollection, Int32)

Удаляет по крайней мере заданное количество доступных элементов из этой очереди и добавляет их в данную коллекцию.

DrainTo(ICollection)

Удаляет все доступные элементы из этой очереди и добавляет их в данную коллекцию.

Element()

Извлекает, но не удаляет голову этой очереди.

(Унаследовано от AbstractQueue)
Equals(Object)

Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс PriorityQueue и предоставляет блокирующие операции извлечения.

(Унаследовано от JavaObject)
Equals(Object)

Указывает, равен ли другой объект этому объекту.

(Унаследовано от Object)
ForEach(IConsumer)

Выполняет заданное действие для каждого элемента итерабельного до тех пор, пока все элементы не будут обработаны или действие создает исключение.

GetHashCode()

Возвращает хэш-значение кода для объекта.

(Унаследовано от Object)
Iterator()

Возвращает итератор по элементам в этой очереди.

JavaFinalize()
Устаревшие.

Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет.

(Унаследовано от Object)
Notify()

Просыпается один поток, ожидающий монитора этого объекта.

(Унаследовано от Object)
NotifyAll()

Просыпает все потоки, ожидающие монитора этого объекта.

(Унаследовано от Object)
Offer(Object, Int64, TimeUnit)

Вставляет указанный элемент в эту очередь приоритета.

Offer(Object)

Вставляет указанный элемент в эту очередь приоритета.

Peek()

Извлекает, но не удаляет, голову этой очереди или возвращает null , если эта очередь пуста.

Poll()

Извлекает и удаляет голову этой очереди или возвращает null , если эта очередь пуста.

Poll(Int64, TimeUnit)

Извлекает и удаляет голову этой очереди, ожидая до указанного времени ожидания, если необходимо, чтобы элемент стал доступным.

Put(Object)

Вставляет указанный элемент в эту очередь приоритета.

RemainingCapacity()

Всегда возвращается Integer.MAX_VALUE , так как PriorityBlockingQueue емкость не ограничена.

Remove()

Извлекает и удаляет голову этой очереди.

(Унаследовано от AbstractQueue)
Remove(Object)

Добавление

(Унаследовано от AbstractCollection)
RemoveAll(ICollection)

Добавление

(Унаследовано от AbstractCollection)
RemoveIf(IPredicate)

Удаляет все элементы этой коллекции, удовлетворяющие заданному предикату.

RetainAll(ICollection)

Добавление

(Унаследовано от AbstractCollection)
SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс PriorityQueue и предоставляет блокирующие операции извлечения.

(Унаследовано от JavaObject)
Size()

Возвращает количество объектов, содержащихся в нем Collection .

Spliterator()

Spliterator Возвращает элементы в этой очереди.

Take()

Извлекает и удаляет голову этой очереди, ожидая, если это необходимо, пока элемент не станет доступным.

ToArray()

Добавление

(Унаследовано от AbstractCollection)
ToArray(Object[])

Добавление

(Унаследовано от AbstractCollection)
ToArray<T>()

Создает управляемый массив из этого Java оболочки массива.

(Унаследовано от Object)
ToString()

Возвращает строковое представление объекта.

(Унаследовано от Object)
UnregisterFromRuntime()

Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия.

(Унаследовано от Object)
Wait()

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, путем <><уведомления/>em или <эм>прерванного</em.>

(Унаследовано от Object)
Wait(Int64, Int32)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)
Wait(Int64)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)

Явные реализации интерфейса

Имя. Описание
IJavaPeerable.Disposed()

Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс PriorityQueue и предоставляет блокирующие операции извлечения.

(Унаследовано от JavaObject)
IJavaPeerable.Finalized()

Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс PriorityQueue и предоставляет блокирующие операции извлечения.

(Унаследовано от JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс PriorityQueue и предоставляет блокирующие операции извлечения.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс PriorityQueue и предоставляет блокирующие операции извлечения.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс PriorityQueue и предоставляет блокирующие операции извлечения.

(Унаследовано от JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс PriorityQueue и предоставляет блокирующие операции извлечения.

(Унаследовано от JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс PriorityQueue и предоставляет блокирующие операции извлечения.

Методы расширения

Имя. Описание
GetJniTypeName(IJavaPeerable)

Возвращает имя JNI типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс PriorityQueue и предоставляет блокирующие операции извлечения.

OfferAsync(IBlockingQueue, Object, Int64, TimeUnit)

Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс PriorityQueue и предоставляет блокирующие операции извлечения.

OfferAsync(IBlockingQueue, Object)

Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс PriorityQueue и предоставляет блокирующие операции извлечения.

PollAsync(IBlockingQueue, Int64, TimeUnit)

Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс PriorityQueue и предоставляет блокирующие операции извлечения.

PutAsync(IBlockingQueue, Object)

Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс PriorityQueue и предоставляет блокирующие операции извлечения.

TakeAsync(IBlockingQueue)

Несвязанная очередь блокировки BlockingQueue, использующая те же правила упорядочения, что и класс PriorityQueue и предоставляет блокирующие операции извлечения.

ToEnumerable(IIterable)

Возвращает итерацию IEnumerable по JavaIIterable, позволяя foreach использовать LINQ с типами коллекций Java. Каждый элемент маршалируется из своего Java экземпляра в соответствующий управляемый тип.

ToEnumerable<T>(IIterable)

Возвращает итерацию IEnumerable<T> по JavaIIterable, маршалинг каждого элемента Tв . Это позволяет foreach использовать LINQ с типами коллекций Java.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

Применяется к