code: public int remove(Object key)
    {
      if (key == null)
        key = NULL_KEY;
  
      int hash = key.hashCode() & _mask;
  
      synchronized (this) {
        Item prev = null;
        for (Item item = _entries[hash]; item != null; item = item._next) {
          Object itemKey = item._key;
        
          if (itemKey == key || itemKey.equals(key)) {
            int oldValue = item._value;
  
            if (prev != null)
              prev._next = item._next;
            else
              _entries[hash] = item._next;
  
            _size--;
  
            return oldValue;
          }
  
          prev = item;
        }
      }
  
      return NULL;
    }
docs: Deletes the entry.  Returns true if successful.