@Override
  public V remove(Object key) {
    final V value = myKeyToValueMap.remove(key);
    final List<K> ks = myValueToKeysMap.get(value);
    if (ks != null) {
      if (ks.size() > 1) {
        ks.remove(key);
      }
      else {
        myValueToKeysMap.remove(value);
      }
    }
    return value;
  }
@Override
  public V remove(Object key)