code: @Override
      @SuppressWarnings("unchecked")
      public Handle<K, V> findMin() {
          if (size == 0) {
              throw new NoSuchElementException();
          } else if (size == 1) {
              return free;
          } else if (size % 2 == 0) {
              return minHeap.findMin().getValue().outer;
          } else {
              AddressableHeap.Handle<K, HandleMap<K, V>> minInnerHandle = minHeap.findMin();
              int c;
              if (comparator == null) {
                  c = ((Comparable<? super K>) minInnerHandle.getKey()).compareTo(free.key);
              } else {
                  c = comparator.compare(minInnerHandle.getKey(), free.key);
              }
              if (c < 0) {
                  return minInnerHandle.getValue().outer;
              } else {
                  return free;
              }
          }
      }
docs: {@inheritDoc}