@Override public Object remove(Object key){
  Entry tab[]=table;
  if (key != null) {
    int hash=System.identityHashCode(key);
    int index=(hash & 0x7FFFFFFF) % tab.length;
    for (Entry e=tab[index], prev=null; e != null; prev=e, e=e.next) {
      if ((e.hash == hash) && key == e.key) {
        modCount++;
        if (prev != null)         prev.next=e.next;
 else         tab[index]=e.next;
        count--;
        Object oldValue=e.value;
        e.value=null;
        return oldValue;
      }
    }
  }
 else {
    for (Entry e=tab[0], prev=null; e != null; prev=e, e=e.next) {
      if (e.key == null) {
        modCount++;
        if (prev != null)         prev.next=e.next;
 else         tab[0]=e.next;
        count--;
        Object oldValue=e.value;
        e.value=null;
        return oldValue;
      }
    }
  }
  return null;
}

@ Override public Object remove ( Object key ) { Entry tab [ ] = table ; if ( key != null ) { int hash = System . identityHashCode ( key ) ; int index = ( hash & 0x7FFFFFFF ) % tab . length ; for ( Entry e = tab [ index ] , prev = null ; e != null ; prev = e , e = e . next ) { if ( ( e . hash == hash ) && key == e . key ) { modCount ++ ; if ( prev != null ) prev . next = e . next ; else tab [ index ] = e . next ; count -- ; Object oldValue = e . value ; e . value = null ; return oldValue ; } } } else { for ( Entry e = tab [ 0 ] , prev = null ; e != null ; prev = e , e = e . next ) { if ( e . key == null ) { modCount ++ ; if ( prev != null ) prev . next = e . next ; else tab [ 0 ] = e . next ; count -- ; Object oldValue = e . value ; e . value = null ; return oldValue ; } } } return null ; }
removes the mapping for this key from this map if present .
