code: @SuppressWarnings("unchecked")
      private void heapify() {
          for (int i = (size >>> 1) - 1; i >= 0; i--)
              siftDown(i, (E) queue[i]);
      }
docs: Establishes the heap invariant (described above) in the entire tree,
  assuming nothing about the order of the elements prior to the call.