code: @Override
    public boolean add(E key) {
      if (contains(key)) {
        return false;
      }
      makeEntry(key);
      return true;
    }
docs: Adds an object to the queue with the minimum priority
  (Double.NEGATIVE_INFINITY).  If the object is already in the queue
  with worse priority, this does nothing.  If the object is
  already present, with better priority, it will NOT cause an
  a decreasePriority.
  
  @param key an <code>Object</code> value
  @return whether the key was present before