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(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 для Android и не предназначен для использования непосредственно из кода. |
ThresholdType |
Этот API поддерживает инфраструктуру Mono для 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>. (Унаследовано от Object) |
Wait(Int64) |
Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления</>em>, <>прерывания< или> em, либо до истечения определенного количества реального времени. (Унаследовано от Object) |
Wait(Int64, Int32) |
Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления</>em>, <>прерывания< или> 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, которая использует те же правила упорядочения, что и класс |