@Test public void testDistinctValuesAreGuaranteed() { this.testee.put("test", "test1"); this.testee.put("test", "test1"); assertThat(this.testee).containsExactlyOneValueFor("test"); }
public void put(K key, V value) { this.store.computeIfAbsent(key, k -> new ConcurrentLinkedDistinctQueue<>()).add(value); }
ConcurrentDistinctMultiValueMap { public void put(K key, V value) { this.store.computeIfAbsent(key, k -> new ConcurrentLinkedDistinctQueue<>()).add(value); } }
ConcurrentDistinctMultiValueMap { public void put(K key, V value) { this.store.computeIfAbsent(key, k -> new ConcurrentLinkedDistinctQueue<>()).add(value); }  }
ConcurrentDistinctMultiValueMap { public void put(K key, V value) { this.store.computeIfAbsent(key, k -> new ConcurrentLinkedDistinctQueue<>()).add(value); }  Collection<V> get(K key); void put(K key, V value); void clear(); Collection<V> remove(K key); Collection<Collection<V>> values(); void put(K key, Collection<V> values); Collection<V> computeIfAbsent(K key, Function<? super K, ? extends Collection<V>> mappingFunction); Map<K, Collection<V>> shallowCopy(); int size(); boolean isEmpty(); void removeValue(V value); }
ConcurrentDistinctMultiValueMap { public void put(K key, V value) { this.store.computeIfAbsent(key, k -> new ConcurrentLinkedDistinctQueue<>()).add(value); }  Collection<V> get(K key); void put(K key, V value); void clear(); Collection<V> remove(K key); Collection<Collection<V>> values(); void put(K key, Collection<V> values); Collection<V> computeIfAbsent(K key, Function<? super K, ? extends Collection<V>> mappingFunction); Map<K, Collection<V>> shallowCopy(); int size(); boolean isEmpty(); void removeValue(V value);  }