@Override public V put(K key,V value){
  if (key == null)   return putForNullKey(value);
  int hash=hash(key);
  int i=indexFor(hash,table.length);
  for (Entry<K,V> e=table[i]; e != null; e=e.next) {
    Object k;
    if (e.hash == hash && ((k=e.key) == key || key.equals(k))) {
      V oldValue=e.value;
      e.value=value;
      e.recordAccess(this);
      return oldValue;
    }
  }
  modCount++;
  addEntry(hash,key,value,i);
  return null;
}

@ Override public V put ( K key , V value ) { if ( key == null ) return putForNullKey ( value ) ; int hash = hash ( key ) ; int i = indexFor ( hash , table . length ) ; for ( Entry < K , V > e = table [ i ] ; e != null ; e = e . next ) { Object k ; if ( e . hash == hash && ( ( k = e . key ) == key || key . equals ( k ) ) ) { V oldValue = e . value ; e . value = value ; e . recordAccess ( this ) ; return oldValue ; } } modCount ++ ; addEntry ( hash , key , value , i ) ; return null ; }
associates the specified value with the specified key in this map . if the map previously contained a mapping for the key , the old value is replaced .
