Class DefaultPriorityQueue<T extends PriorityQueueNode>
java.lang.Object
java.util.AbstractCollection<T>
java.util.AbstractQueue<T>
io.netty.util.internal.DefaultPriorityQueue<T>
- Type Parameters:
T- The object that is maintained in the queue.
- All Implemented Interfaces:
PriorityQueue<T>, java.lang.Iterable<T>, java.util.Collection<T>, java.util.Queue<T>
public final class DefaultPriorityQueue<T extends PriorityQueueNode>
extends java.util.AbstractQueue<T>
implements PriorityQueue<T>
A priority queue which uses natural ordering of elements. Elements are also required to be of type
PriorityQueueNode for the purpose of maintaining the index in the priority queue.-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final java.util.Comparator<T> private static final PriorityQueueNode[]private T[]private int -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidbubbleDown(int k, T node) private voidvoidclear()voidRemoves all of the elements from thisPriorityQueuewithout callingPriorityQueueNode.priorityQueueIndex(DefaultPriorityQueue)or explicitly removing references to them to allow them to be garbage collected.private booleancontains(PriorityQueueNode node, int i) booleancontains(java.lang.Object o) booleancontainsTyped(T node) Same asCollection.contains(Object)but typed using generics.booleanisEmpty()java.util.Iterator<T> iterator()This iterator does not return elements in any particular order.booleanpeek()poll()voidpriorityChanged(T node) Notify the queue that the priority fornodehas changed.booleanremove(java.lang.Object o) booleanremoveTyped(T node) Same asCollection.remove(Object)but typed using generics.intsize()java.lang.Object[]toArray()<X> X[]toArray(X[] a) Methods inherited from class java.util.AbstractQueue
add, addAll, element, removeMethods inherited from class java.util.AbstractCollection
containsAll, removeAll, retainAll, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.util.Collection
addAll, containsAll, equals, hashCode, parallelStream, removeAll, removeIf, retainAll, spliterator, streamMethods inherited from interface java.lang.Iterable
forEachMethods inherited from interface java.util.Queue
add, element, remove
-
Field Details
-
EMPTY_ARRAY
-
comparator
-
queue
-
size
private int size
-
-
Constructor Details
-
DefaultPriorityQueue
-
-
Method Details
-
size
public int size()- Specified by:
sizein interfacejava.util.Collection<T extends PriorityQueueNode>- Specified by:
sizein classjava.util.AbstractCollection<T extends PriorityQueueNode>
-
isEmpty
public boolean isEmpty()- Specified by:
isEmptyin interfacejava.util.Collection<T extends PriorityQueueNode>- Overrides:
isEmptyin classjava.util.AbstractCollection<T extends PriorityQueueNode>
-
contains
public boolean contains(java.lang.Object o) - Specified by:
containsin interfacejava.util.Collection<T extends PriorityQueueNode>- Overrides:
containsin classjava.util.AbstractCollection<T extends PriorityQueueNode>
-
containsTyped
Description copied from interface:PriorityQueueSame asCollection.contains(Object)but typed using generics.- Specified by:
containsTypedin interfacePriorityQueue<T extends PriorityQueueNode>
-
clear
public void clear()- Specified by:
clearin interfacejava.util.Collection<T extends PriorityQueueNode>- Overrides:
clearin classjava.util.AbstractQueue<T extends PriorityQueueNode>
-
clearIgnoringIndexes
public void clearIgnoringIndexes()Description copied from interface:PriorityQueueRemoves all of the elements from thisPriorityQueuewithout callingPriorityQueueNode.priorityQueueIndex(DefaultPriorityQueue)or explicitly removing references to them to allow them to be garbage collected. This should only be used when it is certain that the nodes will not be re-inserted into this or any otherPriorityQueueand it is known that thePriorityQueueitself will be garbage collected after this call.- Specified by:
clearIgnoringIndexesin interfacePriorityQueue<T extends PriorityQueueNode>
-
offer
- Specified by:
offerin interfacejava.util.Queue<T extends PriorityQueueNode>
-
poll
- Specified by:
pollin interfacejava.util.Queue<T extends PriorityQueueNode>
-
peek
- Specified by:
peekin interfacejava.util.Queue<T extends PriorityQueueNode>
-
remove
public boolean remove(java.lang.Object o) - Specified by:
removein interfacejava.util.Collection<T extends PriorityQueueNode>- Overrides:
removein classjava.util.AbstractCollection<T extends PriorityQueueNode>
-
removeTyped
Description copied from interface:PriorityQueueSame asCollection.remove(Object)but typed using generics.- Specified by:
removeTypedin interfacePriorityQueue<T extends PriorityQueueNode>
-
priorityChanged
Description copied from interface:PriorityQueueNotify the queue that the priority fornodehas changed. The queue will adjust to ensure the priority queue properties are maintained.- Specified by:
priorityChangedin interfacePriorityQueue<T extends PriorityQueueNode>- Parameters:
node- An object which is in this queue and the priority may have changed.
-
toArray
public java.lang.Object[] toArray()- Specified by:
toArrayin interfacejava.util.Collection<T extends PriorityQueueNode>- Overrides:
toArrayin classjava.util.AbstractCollection<T extends PriorityQueueNode>
-
toArray
public <X> X[] toArray(X[] a) - Specified by:
toArrayin interfacejava.util.Collection<T extends PriorityQueueNode>- Overrides:
toArrayin classjava.util.AbstractCollection<T extends PriorityQueueNode>
-
iterator
This iterator does not return elements in any particular order.- Specified by:
iteratorin interfacejava.util.Collection<T extends PriorityQueueNode>- Specified by:
iteratorin interfacejava.lang.Iterable<T extends PriorityQueueNode>- Specified by:
iteratorin classjava.util.AbstractCollection<T extends PriorityQueueNode>
-
contains
-
bubbleDown
-
bubbleUp
-