@Override
  public boolean replace(K k, V v1, V v2) {
    return mInternalMap.replace(new IdentityObject<>(k), v1, v2);
  }
@Test
  public void replace() {
    String x = new String("x");
    String x2 = new String("x");
    assertNull(mMap.put(x, "x"));
    assertNull(mMap.replace(x2, "x"));
    assertEquals(1, mMap.size());
    assertEquals("x", mMap.replace(x, "y"));
    assertFalse(mMap.replace(x, "noreplace", "z")); // shouldn't replace
    assertEquals("y", mMap.get(x));
  }