Spec-Zone .ru
спецификации, руководства, описания, API
|
E
- тип элементов сохранен в этом набореpublic class PriorityQueue<E> extends AbstractQueue<E> implements Serializable
Comparator
если во время создания очереди, в зависимости от которого используется конструктор. Приоритетная очередь не разрешает null
элементы. Приоритетная очередь, полагающаяся на естественное упорядочивание также, не разрешает вставку несопоставимых объектов (выполнение так может привести к ClassCastException
). Глава этой очереди является наименьшим количеством элемента относительно указанного упорядочивания. Если многократные элементы связываются для наименьшего количества значения, голова является одним из тех элементов - связи повреждаются произвольно. Операции извлечения очереди poll
, remove
, peek
, и element
получите доступ к элементу во главе очереди.
Приоритетная очередь неограниченна, но имеет внутреннюю емкость, управляющую размером массива, используемого, чтобы сохранить элементы на очереди. Это является всегда, по крайней мере, столь же большим как размер очереди. Поскольку элементы добавляются к приоритетной очереди, ее емкость растет автоматически. Детали политики роста не определяются.
Этот class и его iterator реализуют все дополнительные методы Collection
и Iterator
интерфейсы. Iterator обеспечил в методе iterator()
как гарантируют, не пересечет элементы приоритетной очереди в любом определенном порядке. Если Вы нуждаетесь в упорядоченном обходе, рассматриваете использование Arrays.sort(pq.toArray())
.
Отметьте, что эта реализация не синхронизируется. Многократные потоки не должны получить доступ к a PriorityQueue
экземпляр одновременно, если какой-либо из потоков изменяет очередь. Вместо этого используйте ориентированное на многопотоковое исполнение PriorityBlockingQueue
class.
Примечание реализации: эта реализация обеспечивает O (журнал (n)) время для enqueing и dequeing методов (offer
, poll
, remove()
и add
); линейное время для remove(Object)
и contains(Object)
методы; и постоянное время для методов извлечения (peek
, element
, и size
).
Этот class является элементом Платформы Наборов 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()
Возвращает число элементов в этом наборе.
|
Spliterator<E> |
spliterator()
Создает a
Spliterator по элементам в этом наборе. |
Объект[] |
toArray()
Возвращает массив, содержащий все элементы в этой очереди.
|
<T> T[] |
toArray(T[] a)
Возвращает массив, содержащий все элементы в этой очереди; тип времени выполнения возвращенного массива является типом указанного массива.
|
addAll, element, remove
containsAll, isEmpty, removeAll, retainAll, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
containsAll, equals, hashCode, isEmpty, parallelStream, removeAll, removeIf, retainAll, stream
forEach
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
в class 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
в class AbstractCollection<E>
o
- элемент, который будет удален из этой очереди, если существующийtrue
если эта очередь изменилась в результате вызоваpublic boolean contains(Object o)
true
если эта очередь содержит указанный элемент. Более формально, возвраты true
если и только если эта очередь содержит по крайней мере один элемент e
так, что o.equals(e)
.contains
в интерфейсе Collection<E>
contains
в class AbstractCollection<E>
o
- объект, который будет проверен на включение в этой очередиtrue
если эта очередь содержит указанный элементpublic Object[] toArray()
Возвращенный массив будет "безопасен" в этом, никакие ссылки на него не сохраняются этой очередью. (Другими словами этот метод должен выделить новый массив). Вызывающая сторона таким образом свободна изменить возвращенный массив.
Этот метод действует как мост между основанными на массиве и основанными на наборе API.
toArray
в интерфейсе Collection<E>
toArray
в class 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
в class AbstractCollection<E>
a
- массив, в который должны быть сохранены элементы очереди, если это является достаточно большим; иначе, новый массив того же самого типа времени выполнения выделяется с этой целью.ArrayStoreException
- если тип времени выполнения указанного массива не является супертипом типа времени выполнения каждого элемента в этой очередиNullPointerException
- если указанный массив является нулемpublic Iterator<E> iterator()
iterator
в интерфейсе Iterable<E>
iterator
в интерфейсе Collection<E>
iterator
в class AbstractCollection<E>
public int size()
Collection
size
в интерфейсе Collection<E>
size
в class AbstractCollection<E>
public void clear()
clear
в интерфейсе Collection<E>
clear
в class AbstractQueue<E>
public E poll()
Queue
public Comparator<? super E> comparator()
null
если эта очередь сортируется согласно естественному упорядочиванию ее элементов.null
если эта очередь сортируется согласно естественному упорядочиванию ее элементовpublic final Spliterator<E> spliterator()
Collection
Spliterator
по элементам в этом наборе. Возвращенный Spliterator
должна сообщить характеристика Spliterator.SIZED
; реализации должны задокументировать любые дополнительные характеристические значения, о которых сообщает возвращенный Spliterator.
Реализация по умолчанию должна быть переопределена подклассами, которые могут возвратить более эффективный spliterator. Чтобы сохранить ожидаемое поведение лени для Collection.stream()
и Collection.parallelStream()
} у методов, spliterators должна или быть характеристика IMMUTABLE
или CONCURRENT
, или быть поздним связыванием. Если ни один из них не практичен, переопределение class должен описать задокументированную политику spliterator привязки и структурной интерференции, и должен переопределить Collection.stream()
и Collection.parallelStream()
методы, чтобы создать потоки, используя a Supplier
из spliterator, как в:
Stream<E> s = StreamSupport.stream(() -> spliterator(), spliteratorCharacteristics)
Эти требования гарантируют что потоки, произведенные Collection.stream()
и Collection.parallelStream()
методы отразят содержание набора с инициирования терминальной операции с потоками.
spliterator
в интерфейсе Collection<E>
Spliterator
по элементам в этом наборе
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92