docs: public E extractMin() {
      if (isEmpty()) {
        throw new NoSuchElementException();
      }
      HeapEntry<E> minEntry = indexToEntry.get(0);
      int lastIndex = size() - 1;
      if (lastIndex > 0) {
        HeapEntry<E> lastEntry =  indexToEntry.get(lastIndex);
        swap(lastEntry, minEntry);
        removeLast(minEntry);
        heapifyDown(lastEntry);
      } else {
        removeLast(minEntry);
      }
      return minEntry.object;
    }