@Test public void remove() { String x = new String("x"); String x2 = new String("x"); assertNull(mMap.put(x, "y")); assertEquals(1, mMap.size()); assertNull(mMap.remove(x2)); assertEquals(1, mMap.size()); assertEquals("y", mMap.remove(x)); assertEquals(0, mMap.size()); assertNull(mMap.put(x2, "z")); assertEquals(1, mMap.size()); assertFalse(mMap.remove(x2, "a")); assertTrue(mMap.remove(x2, "z")); assertEquals(0, mMap.size()); }
@Override public boolean remove(Object k, Object v) { return mInternalMap.remove(new IdentityObject<>(k), v); }
ConcurrentIdentityHashMap implements ConcurrentMap<K, V> { @Override public boolean remove(Object k, Object v) { return mInternalMap.remove(new IdentityObject<>(k), v); } }
ConcurrentIdentityHashMap implements ConcurrentMap<K, V> { @Override public boolean remove(Object k, Object v) { return mInternalMap.remove(new IdentityObject<>(k), v); } ConcurrentIdentityHashMap();  ConcurrentIdentityHashMap(int initialCapacity);  ConcurrentIdentityHashMap(int initialCapacity, float loadFactor);  ConcurrentIdentityHashMap(int initialCapacity,
      float loadFactor, int concurrencyLevel); }
ConcurrentIdentityHashMap implements ConcurrentMap<K, V> { @Override public boolean remove(Object k, Object v) { return mInternalMap.remove(new IdentityObject<>(k), v); } ConcurrentIdentityHashMap();  ConcurrentIdentityHashMap(int initialCapacity);  ConcurrentIdentityHashMap(int initialCapacity, float loadFactor);  ConcurrentIdentityHashMap(int initialCapacity,
      float loadFactor, int concurrencyLevel); @Override boolean containsKey(Object k); @Override V put(K k, V v); @Override V putIfAbsent(K k, V v); @Override boolean remove(Object k, Object v); @Override V remove(Object k); @Override boolean replace(K k, V v1, V v2); @Override V replace(K k, V v); @Override V get(Object k); @Override Collection<V> values(); @Override void clear(); @Override Set<Map.Entry<K, V>> entrySet(); @Override void putAll(Map<? extends K, ? extends V> map); @Override boolean isEmpty(); @Override int size(); @Override boolean containsValue(Object value); @Override Set<K> keySet(); }
ConcurrentIdentityHashMap implements ConcurrentMap<K, V> { @Override public boolean remove(Object k, Object v) { return mInternalMap.remove(new IdentityObject<>(k), v); } ConcurrentIdentityHashMap();  ConcurrentIdentityHashMap(int initialCapacity);  ConcurrentIdentityHashMap(int initialCapacity, float loadFactor);  ConcurrentIdentityHashMap(int initialCapacity,
      float loadFactor, int concurrencyLevel); @Override boolean containsKey(Object k); @Override V put(K k, V v); @Override V putIfAbsent(K k, V v); @Override boolean remove(Object k, Object v); @Override V remove(Object k); @Override boolean replace(K k, V v1, V v2); @Override V replace(K k, V v); @Override V get(Object k); @Override Collection<V> values(); @Override void clear(); @Override Set<Map.Entry<K, V>> entrySet(); @Override void putAll(Map<? extends K, ? extends V> map); @Override boolean isEmpty(); @Override int size(); @Override boolean containsValue(Object value); @Override Set<K> keySet();  }