FastMap implements Map<K,V>, Serializable, Cloneable { @Override public V remove(Object key) { if (key == null) { return null; } int index = find(key); if (keys[index] == null) { return null; } else { ((Object[])keys)[index] = REMOVED; numEntries--; V oldValue = values[index]; values[index] = null; return oldValue; } } FastMap();  FastMap(int size);  FastMap(Map<K,V> other);  FastMap(int size, int maxSize); @Override V get(Object key); @Override int size(); @Override boolean isEmpty(); @Override boolean containsKey(Object key); @Override boolean containsValue(Object value); @Override V put(K key, V value); @Override void putAll(Map<? extends K,? extends V> map); @Override V remove(Object key); @Override void clear(); @Override Set<K> keySet(); @Override Collection<V> values(); @Override Set<Entry<K,V>> entrySet(); void rehash(); @Override FastMap<K,V> clone(); @Override int hashCode(); @Override boolean equals(Object other); @Override String toString(); static final int NO_MAX_SIZE; }
@Test public void testRemove() { Map<String, String> map = new FastMap<String, String>(); map.put("foo", "bar"); map.remove("foo"); assertEquals(0, map.size()); assertTrue(map.isEmpty()); assertNull(map.get("foo")); }