code: public Object remove(int key) {
          Entry tab[] = table;
          
          int index = (key & 0x7FFFFFFF) % tab.length;
          
          for (Entry e = tab[index], prev = null; e != null; 
               prev = e, e = e.next) {
  
              if (e.key == key) {
                  modCount++;
                  if (prev != null) {
                      prev.next = e.next;
                  }
                  else {
                      tab[index] = e.next;
                  }
                  
                  count--;
                  Object oldValue = e.value;
                  e.value = null;
                  return oldValue;
              }
          }
          
          return null;
      }
docs: Removes the mapping for this key from this map if present.
  
  @param key key whose mapping is to be removed from the map.
  @return previous value associated with specified key, or <tt>null</tt>
  if there was no mapping for key.  A <tt>null</tt> return can
  also indicate that the map previously associated <tt>null</tt>
  with the specified key.