code: public Object remove(Object key) {
        NonSyncHashtableEntry tab[] = table;
        int hash = key.hashCode();
        int index = (hash & 0x7FFFFFFF) % tab.length;
        for (NonSyncHashtableEntry e = tab[index], prev = null; e != null; prev = e, e = e.next) {
           if ((e.hash == hash) && e.key.equals(key)) {
              if (prev != null) {
                 prev.next = e.next;
              } else {
                 tab[index] = e.next;
              }
              count--;
              return e.value;
           }
        }
        return null;
     }
docs: Removes the key (and its corresponding value) from this
  hashtable. This method does nothing if the key is not in the hashtable.
  @param   key   the key that needs to be removed.
  @return  The value to which the key had been mapped in this hashtable,
  or <code>null</code> if the key did not have a mapping.