@Override public V remove(Object key) {if (key == null) {return removeNullKey();}int hash = secondaryHash(key.hashCode());HashMapEntry<K, V>[] tab = table;int index = hash & (tab.length - 1);for (HashMapEntry<K, V> e = tab[index], prev = null;e != null; prev = e, e = e.next) {if (e.hash == hash && key.equals(e.key)) {if (prev == null) {tab[index] = e.next;} else {prev.next = e.next;}modCount++;size--;postRemove(e);return e.value;}}return null;}

public override V remove(object key){if (key == null){return removeNullKey();}int hash = secondaryHash(key.GetHashCode());java.util.HashMap.HashMapEntry<K, V>[] tab = table;int index = hash & (tab.Length - 1);{java.util.HashMap.HashMapEntry<K, V> e = tab[index];java.util.HashMap.HashMapEntry<K, V> prev = null;for (; e != null; prev = e, e = e.next){if (e.hash == hash && key.Equals(e.key)){if (prev == null){tab[index] = e.next;}else{prev.next = e.next;}modCount++;_size--;postRemove(e);return e.value;}}}return default(V);}
