Package io.netty.util.internal
Class DefaultPriorityQueue<T extends PriorityQueueNode>
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- 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 typePriorityQueueNode
for the purpose of maintaining the index in the priority queue.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
DefaultPriorityQueue.PriorityQueueIterator
-
Field Summary
Fields Modifier and Type Field Description private java.util.Comparator<T>
comparator
private static PriorityQueueNode[]
EMPTY_ARRAY
private T[]
queue
private int
size
-
Constructor Summary
Constructors Constructor Description DefaultPriorityQueue(java.util.Comparator<T> comparator, int initialSize)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
bubbleDown(int k, T node)
private void
bubbleUp(int k, T node)
void
clear()
void
clearIgnoringIndexes()
Removes all of the elements from thisPriorityQueue
without callingPriorityQueueNode.priorityQueueIndex(DefaultPriorityQueue)
or explicitly removing references to them to allow them to be garbage collected.private boolean
contains(PriorityQueueNode node, int i)
boolean
contains(java.lang.Object o)
boolean
containsTyped(T node)
Same asCollection.contains(Object)
but typed using generics.boolean
isEmpty()
java.util.Iterator<T>
iterator()
This iterator does not return elements in any particular order.boolean
offer(T e)
T
peek()
T
poll()
void
priorityChanged(T node)
Notify the queue that the priority fornode
has changed.boolean
remove(java.lang.Object o)
boolean
removeTyped(T node)
Same asCollection.remove(Object)
but typed using generics.int
size()
java.lang.Object[]
toArray()
<X> X[]
toArray(X[] a)
-
Methods inherited from class java.util.AbstractCollection
containsAll, removeAll, retainAll, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
-
-
-
Field Detail
-
EMPTY_ARRAY
private static final PriorityQueueNode[] EMPTY_ARRAY
-
comparator
private final java.util.Comparator<T extends PriorityQueueNode> comparator
-
queue
private T extends PriorityQueueNode[] queue
-
size
private int size
-
-
Constructor Detail
-
DefaultPriorityQueue
public DefaultPriorityQueue(java.util.Comparator<T> comparator, int initialSize)
-
-
Method Detail
-
size
public int size()
- Specified by:
size
in interfacejava.util.Collection<T extends PriorityQueueNode>
- Specified by:
size
in classjava.util.AbstractCollection<T extends PriorityQueueNode>
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interfacejava.util.Collection<T extends PriorityQueueNode>
- Overrides:
isEmpty
in classjava.util.AbstractCollection<T extends PriorityQueueNode>
-
contains
public boolean contains(java.lang.Object o)
- Specified by:
contains
in interfacejava.util.Collection<T extends PriorityQueueNode>
- Overrides:
contains
in classjava.util.AbstractCollection<T extends PriorityQueueNode>
-
containsTyped
public boolean containsTyped(T node)
Description copied from interface:PriorityQueue
Same asCollection.contains(Object)
but typed using generics.- Specified by:
containsTyped
in interfacePriorityQueue<T extends PriorityQueueNode>
-
clear
public void clear()
- Specified by:
clear
in interfacejava.util.Collection<T extends PriorityQueueNode>
- Overrides:
clear
in classjava.util.AbstractQueue<T extends PriorityQueueNode>
-
clearIgnoringIndexes
public void clearIgnoringIndexes()
Description copied from interface:PriorityQueue
Removes all of the elements from thisPriorityQueue
without 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 otherPriorityQueue
and it is known that thePriorityQueue
itself will be garbage collected after this call.- Specified by:
clearIgnoringIndexes
in interfacePriorityQueue<T extends PriorityQueueNode>
-
offer
public boolean offer(T e)
- Specified by:
offer
in interfacejava.util.Queue<T extends PriorityQueueNode>
-
poll
public T poll()
- Specified by:
poll
in interfacejava.util.Queue<T extends PriorityQueueNode>
-
peek
public T peek()
- Specified by:
peek
in interfacejava.util.Queue<T extends PriorityQueueNode>
-
remove
public boolean remove(java.lang.Object o)
- Specified by:
remove
in interfacejava.util.Collection<T extends PriorityQueueNode>
- Overrides:
remove
in classjava.util.AbstractCollection<T extends PriorityQueueNode>
-
removeTyped
public boolean removeTyped(T node)
Description copied from interface:PriorityQueue
Same asCollection.remove(Object)
but typed using generics.- Specified by:
removeTyped
in interfacePriorityQueue<T extends PriorityQueueNode>
-
priorityChanged
public void priorityChanged(T node)
Description copied from interface:PriorityQueue
Notify the queue that the priority fornode
has changed. The queue will adjust to ensure the priority queue properties are maintained.- Specified by:
priorityChanged
in 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:
toArray
in interfacejava.util.Collection<T extends PriorityQueueNode>
- Overrides:
toArray
in classjava.util.AbstractCollection<T extends PriorityQueueNode>
-
toArray
public <X> X[] toArray(X[] a)
- Specified by:
toArray
in interfacejava.util.Collection<T extends PriorityQueueNode>
- Overrides:
toArray
in classjava.util.AbstractCollection<T extends PriorityQueueNode>
-
iterator
public java.util.Iterator<T> iterator()
This iterator does not return elements in any particular order.- Specified by:
iterator
in interfacejava.util.Collection<T extends PriorityQueueNode>
- Specified by:
iterator
in interfacejava.lang.Iterable<T extends PriorityQueueNode>
- Specified by:
iterator
in classjava.util.AbstractCollection<T extends PriorityQueueNode>
-
contains
private boolean contains(PriorityQueueNode node, int i)
-
bubbleDown
private void bubbleDown(int k, T node)
-
bubbleUp
private void bubbleUp(int k, T node)
-
-