A priority queue based on a binary heap. This implementation trades
flexibility for speed: while it is up to 2x faster than BinaryHeapPriorityQueue and nearly as fast as PriorityQueue, it does not support removing or changing the
priority of an element. Also, while getPriority(Object key) is supported, performance will be linear, not
constant.

maxKeysToPrint - The maximum number of keys to print. Less are
printed if there are less than this number of items in the
PriorityQueue. If this number is non-positive, then all elements in
the PriorityQueue are printed.