class WeakConcurrentMap extends ReferenceQueue<K> {

  @Nullable public V remove(K key) {
    if (key == null) throw new NullPointerException("key == null");
    expungeStaleEntries();

    return target.remove(key);
  }

}