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).

Этот класс и его итератор реализуют все <необязательные< методы Collection em>/em> интерфейсов и 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 для java.util.concurrent.PriorityBlockingQueue.

Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License Creative Commons 2.5 Attribution License.

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

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 для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для 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_VALUE так как PriorityBlockingQueue не ограничена емкостью.

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>.

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

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

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

Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления</>em>, <>прерывания< или> 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 , и предоставляет блокирующие операции извлечения.

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