Spec-Zone .ru
спецификации, руководства, описания, API
|
E
- тип элементов сохранен в этом набореpublic class PriorityQueue<E> extends AbstractQueue<E> implements Serializable
Comparator
если во время создания очереди, в зависимости от которого используется конструктор. Приоритетная очередь не разрешает null
элементы. Приоритетная очередь, полагающаяся на естественное упорядочивание также, не разрешает вставку несопоставимых объектов (выполнение так может привести к ClassCastException
). Глава этой очереди является наименьшим количеством элемента относительно указанного упорядочивания. Если многократные элементы связываются для наименьшего количества значения, голова является одним из тех элементов - связи повреждаются произвольно. Операции извлечения очереди poll
, remove
, peek
, и element
получите доступ к элементу во главе очереди.
Приоритетная очередь неограниченна, но имеет внутреннюю емкость, управляющую размером массива, используемого, чтобы сохранить элементы на очереди. Это является всегда, по крайней мере, столь же большим как размер очереди. Поскольку элементы добавляются к приоритетной очереди, ее емкость растет автоматически. Детали политики роста не определяются.
Этот класс и его iterator реализуют все дополнительные методы Collection
и Iterator
интерфейсы. Iterator обеспечил в методе iterator()
как гарантируют, не пересечет элементы приоритетной очереди в любом определенном порядке. Если Вы нуждаетесь в упорядоченном обходе, рассматриваете использование Arrays.sort(pq.toArray())
.
Отметьте, что эта реализация не синхронизируется. Многократные потоки не должны получить доступ к a PriorityQueue
экземпляр одновременно, если какой-либо из потоков изменяет очередь. Вместо этого используйте ориентированное на многопотоковое исполнение PriorityBlockingQueue
класс.
Примечание реализации: эта реализация обеспечивает O (журнал (n)) время для enqueing и dequeing методов (offer
, poll
, remove()
и add
); линейное время для remove(Object)
и contains(Object)
методы; и постоянное время для методов извлечения (peek
, element
, и size
).
Этот класс является элементом Платформы Наборов Java.
Конструктор и Описание |
---|
PriorityQueue()
Создает a
PriorityQueue с начальной емкостью по умолчанию (11), который упорядочивает ее элементы согласно их естественному упорядочиванию. |
PriorityQueue(Collection<? extends E> c)
Создает a
PriorityQueue содержа элементы в указанном наборе. |
PriorityQueue(int initialCapacity)
Создает a
PriorityQueue с указанной начальной емкостью, которая упорядочивает ее элементы согласно их естественному упорядочиванию. |
PriorityQueue(int initialCapacity, Comparator<? super E> comparator)
Создает a
PriorityQueue с указанной начальной емкостью, которая упорядочивает ее элементы согласно указанному компаратору. |
PriorityQueue(PriorityQueue<? extends E> c)
Создает a
PriorityQueue содержа элементы в указанной приоритетной очереди. |
PriorityQueue(SortedSet<? extends E> c)
Создает a
PriorityQueue содержа элементы в указанном сортированном наборе. |
Модификатор и Тип | Метод и Описание |
---|---|
boolean |
add(E e)
Вставляет указанный элемент в эту приоритетную очередь.
|
void |
clear()
Удаляет все элементы от этой приоритетной очереди.
|
Comparator<? super E> |
comparator()
Возвращает компаратор, используемый, чтобы упорядочить элементы в этой очереди, или
null если эта очередь сортируется согласно естественному упорядочиванию ее элементов. |
boolean |
contains(Object o)
Возвраты
true если эта очередь содержит указанный элемент. |
Iterator<E> |
iterator()
Возвращает iterator по элементам в этой очереди.
|
boolean |
offer(E e)
Вставляет указанный элемент в эту приоритетную очередь.
|
E |
peek()
Получает, но не удаляет, глава этой очереди, или возвращает null, если эта очередь пуста.
|
E |
poll()
Получает и удаляет главу этой очереди, или возвращает null, если эта очередь пуста.
|
boolean |
remove(Object o)
Удаляет единственный экземпляр указанного элемента от этой очереди, если это присутствует.
|
int |
size()
Возвращает число элементов в этом наборе.
|
Объект[] |
toArray()
Возвращает массив, содержащий все элементы в этой очереди.
|
<T> T[] |
toArray(T[] a)
Возвращает массив, содержащий все элементы в этой очереди; тип времени выполнения возвращенного массива является типом указанного массива.
|
addAll, element, remove
containsAll, isEmpty, removeAll, retainAll, toString
public PriorityQueue()
PriorityQueue
с начальной емкостью по умолчанию (11), который упорядочивает ее элементы согласно их естественному упорядочиванию.public PriorityQueue(int initialCapacity)
PriorityQueue
с указанной начальной емкостью, которая упорядочивает ее элементы согласно их естественному упорядочиванию.initialCapacity
- начальная емкость для этой приоритетной очередиIllegalArgumentException
- если initialCapacity
меньше чем 1public PriorityQueue(int initialCapacity, Comparator<? super E> comparator)
PriorityQueue
с указанной начальной емкостью, которая упорядочивает ее элементы согласно указанному компаратору.initialCapacity
- начальная емкость для этой приоритетной очередиcomparator
- компаратор, который будет использоваться, чтобы упорядочить эту приоритетную очередь. Если null
, естественное упорядочивание элементов будет использоваться.IllegalArgumentException
- если initialCapacity
меньше чем 1public PriorityQueue(Collection<? extends E> c)
PriorityQueue
содержа элементы в указанном наборе. Если указанный набор является экземпляром a SortedSet
или другой PriorityQueue
, этой приоритетной очереди упорядочат согласно тому же самому упорядочиванию. Иначе, этой приоритетной очереди упорядочат согласно естественному упорядочиванию ее элементов.c
- набор, элементы которого должны быть помещены в эту приоритетную очередьClassCastException
- если элементы указанного набора не могут быть по сравнению с друг другом согласно приоритетному упорядочиванию очередиNullPointerException
- если указанный набор или какой-либо из его элементов являются нулемpublic PriorityQueue(PriorityQueue<? extends E> c)
PriorityQueue
содержа элементы в указанной приоритетной очереди. Этой приоритетной очереди упорядочат согласно тому же самому упорядочиванию как очередь, которой уделяют первостепенное значение.c
- приоритетная очередь, элементы которой должны быть помещены в эту приоритетную очередьClassCastException
- если элементы c
не может быть по сравнению с друг другом согласно c
's упорядочиваниеNullPointerException
- если указанная приоритетная очередь или какой-либо из ее элементов являются нулемpublic PriorityQueue(SortedSet<? extends E> c)
PriorityQueue
содержа элементы в указанном сортированном наборе. Этой приоритетной очереди упорядочат согласно тому же самому упорядочиванию как данный сортированный набор.c
- сортированный набор, элементы которого должны быть помещены в эту приоритетную очередьClassCastException
- если элементы указанного сортированного набора не могут быть по сравнению с друг другом согласно упорядочиванию сортированного набораNullPointerException
- если указанный сортированный набор или какой-либо из его элементов являются нулемpublic boolean add(E e)
add
в интерфейсе Collection<E>
add
в интерфейсе Queue<E>
add
в классе AbstractQueue<E>
e
- элемент, чтобы добавитьtrue
(как определено Collection.add(E)
)ClassCastException
- если указанный элемент не может быть по сравнению с элементами в настоящий момент в этой приоритетной очереди согласно приоритетному упорядочиванию очередиNullPointerException
- если указанный элемент является нулемpublic boolean offer(E e)
offer
в интерфейсе Queue<E>
e
- элемент, чтобы добавитьtrue
(как определено Queue.offer(E)
)ClassCastException
- если указанный элемент не может быть по сравнению с элементами в настоящий момент в этой приоритетной очереди согласно приоритетному упорядочиванию очередиNullPointerException
- если указанный элемент является нулемpublic E peek()
Queue
public boolean remove(Object o)
e
так, что o.equals(e)
, если эта очередь содержит один или более таких элементов. Возвраты true
если и только если эта очередь, содержавшая указанный элемент (или эквивалентно, если эта очередь изменилась в результате вызова).remove
в интерфейсе Collection<E>
remove
в классе AbstractCollection<E>
o
- элемент, который будет удален из этой очереди, если существующийtrue
если эта очередь изменилась в результате вызоваpublic boolean contains(Object o)
true
если эта очередь содержит указанный элемент. Более формально, возвраты true
если и только если эта очередь содержит по крайней мере один элемент e
так, что o.equals(e)
.contains
в интерфейсе Collection<E>
contains
в классе AbstractCollection<E>
o
- объект, который будет проверен на включение в этой очередиtrue
если эта очередь содержит указанный элементpublic Object[] toArray()
Возвращенный массив будет "безопасен" в этом, никакие ссылки на него не сохраняются этой очередью. (Другими словами этот метод должен выделить новый массив). Вызывающая сторона таким образом свободна изменить возвращенный массив.
Этот метод действует как мост между основанными на массиве и основанными на наборе API.
toArray
в интерфейсе Collection<E>
toArray
в классе AbstractCollection<E>
public <T> T[] toArray(T[] a)
Если очередь помещается в указанный массив с комнатой, чтобы сэкономить (то есть, у массива есть больше элементов чем очередь), элемент в массиве сразу после конца набора устанавливается в null
.
Как toArray()
метод, этот метод действует как мост между основанными на массиве и основанными на наборе API. Далее, этот метод позволяет точное управление типом времени выполнения выходного массива, и, при определенных обстоятельствах, может использоваться, чтобы сохранить затраты выделения.
Предположите, что x является очередью, которая, как известно, содержала только строки. Следующий код может использоваться, чтобы вывести очередь в недавно выделенный массив String:
String[] y = x.toArray(new String[0]);Отметьте, что toArray(new Object[0]) идентичен в функции toArray().
toArray
в интерфейсе Collection<E>
toArray
в классе AbstractCollection<E>
a
- массив, в который должны быть сохранены элементы очереди, если это является достаточно большим; иначе, новый массив того же самого типа времени выполнения выделяется с этой целью.ArrayStoreException
- если тип времени выполнения указанного массива не является супертипом типа времени выполнения каждого элемента в этой очередиNullPointerException
- если указанный массив является нулемpublic Iterator<E> iterator()
iterator
в интерфейсе Iterable<E>
iterator
в интерфейсе Collection<E>
iterator
в классе AbstractCollection<E>
public int size()
Collection
size
в интерфейсе Collection<E>
size
в классе AbstractCollection<E>
public void clear()
clear
в интерфейсе Collection<E>
clear
в классе AbstractQueue<E>
public E poll()
Queue
public Comparator<? super E> comparator()
null
если эта очередь сортируется согласно естественному упорядочиванию ее элементов.null
если эта очередь сортируется согласно естественному упорядочиванию ее элементов
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.