boolean (K key, V value) { Set<K> keys = valueToKeys.get(value); if (keys == null) { keys = createKeysSet(); valueToKeys.put(value, keys); } keys.add(key); Set<V> values = keyToValues.get(key); if (values == null) { values = createValuesSet(); keyToValues.put(key, values); } return values.add(value); }