@Override
  public V remove(Object key) {
    if (key instanceof CharSequence) {
      CharSequenceWrapper wrapper = WRAPPERS.get();
      V result = wrapperMap.remove(wrapper.set((CharSequence) key));
      wrapper.set(null); // don't hold a reference to the value
      return result;
    }

    return null;
  }
@Test
  public void testRemove() {
    CharSequenceMap<String> map = CharSequenceMap.create();
    map.put("key1", "value1");
    map.remove(new StringBuilder("key1"));
    assertThat(map).doesNotContainKey("key1");
    assertThat(map).isEmpty();
  }