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