boolean (K key) { Set<V> values = keyToValues.get(key); if (values == null) { return false; } for (V v : values) { Set<K> keys = valueToKeys.get(v); keys.remove(key); if (keys.isEmpty()) { valueToKeys.remove(v); } } keyToValues.remove(key); return true; }