HeapPriorityQueue<E> class

Heap based priority queue.

The elements are kept in a heap structure, where the element with the highest priority is immediately accessible, and modifying a single element takes logarithmic time in the number of elements on average.

  • The add and removeFirst operations take amortized logarithmic time, O(log(n)), but may occasionally take linear time when growing the capacity of the heap.
  • The addAll operation works as doing repeated add operations.
  • The first getter takes constant time, O(1).
  • The clear and removeAll methods also take constant time, O(1).
  • The contains and remove operations may need to search the entire queue for the elements, taking O(n) time.
  • The toList operation effectively sorts the elements, taking O(n*log(n)) time.
  • The toSet operation effectively adds each element to the new set, taking an expected O(n*log(n)) time.
Implemented types

Constructors

HeapPriorityQueue([int comparison(E e1, E e2)])
Create a new priority queue. [...]

Properties

comparison Comparator<E>
The comparison being used to compare the priority of elements.
final
first → E
Returns the next element that will be returned by removeFirst. [...]
read-only, override
isEmpty bool
Whether the queue is empty.
read-only, override
isNotEmpty bool
Whether the queue has any elements.
read-only, override
length int
Number of elements in the queue.
read-only, override
hashCode int
The hash code for this object. [...]
read-only, inherited
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited

Methods

add(E element) → void
Adds element to the queue. [...]
override
addAll(Iterable<E> elements) → void
Adds all elements to the queue.
override
clear() → void
Removes all the elements from this queue.
override
contains(E object) bool
Checks if object is in the queue. [...]
override
remove(E element) bool
Removes an element that compares equal to element in the queue. [...]
override
removeAll() Iterable<E>
Removes all the elements from this queue and returns them. [...]
override
removeFirst() → E
Removes and returns the element with the highest priority. [...]
override
toList() List<E>
Returns a list of the elements of this queue in priority order. [...]
override
toSet() Set<E>
Return a comparator based set using the comparator of this queue. [...]
override
toString() String
Returns some representation of the queue. [...]
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
inherited

Operators

operator ==(dynamic other) bool
The equality operator. [...]
inherited