54 |
|
* <p>This class and its iterator implement all of the |
55 |
|
* <em>optional</em> methods of the {@link Collection} and {@link |
56 |
|
* Iterator} interfaces. The Iterator provided in method {@link |
57 |
< |
* #iterator()} is <em>not</em> guaranteed to traverse the elements of |
57 |
> |
* #iterator()} and the Spliterator provided in method {@link #spliterator()} |
58 |
> |
* are <em>not</em> guaranteed to traverse the elements of |
59 |
|
* the priority queue in any particular order. If you need ordered |
60 |
|
* traversal, consider using {@code Arrays.sort(pq.toArray())}. |
61 |
|
* |
727 |
|
/** |
728 |
|
* Establishes the heap invariant (described above) in the entire tree, |
729 |
|
* assuming nothing about the order of the elements prior to the call. |
730 |
+ |
* This classic algorithm due to Floyd (1964) is known to be O(size). |
731 |
|
*/ |
732 |
|
@SuppressWarnings("unchecked") |
733 |
|
private void heapify() { |
801 |
|
/** |
802 |
|
* Creates a <em><a href="Spliterator.html#binding">late-binding</a></em> |
803 |
|
* and <em>fail-fast</em> {@link Spliterator} over the elements in this |
804 |
< |
* queue. |
804 |
> |
* queue. The spliterator does not traverse elements in any particular order |
805 |
> |
* (the {@link Spliterator#ORDERED ORDERED} characteristic is not reported). |
806 |
|
* |
807 |
|
* <p>The {@code Spliterator} reports {@link Spliterator#SIZED}, |
808 |
|
* {@link Spliterator#SUBSIZED}, and {@link Spliterator#NONNULL}. |