code: public V put(K key, V value) {
          Object k = maskNull(key);
          int h = sun.misc.Hashing.singleWordWangJenkinsHash(k);
          Entry<K,V>[] tab = getTable();
          int i = indexFor(h, tab.length);
  
          for (Entry<K,V> e = tab[i]; e != null; e = e.next) {
              if (h == e.hash && eq(k, e.get())) {
                  V oldValue = e.value;
                  if (value != oldValue)
                      e.value = value;
                  return oldValue;
              }
          }
  
          modCount++;
          Entry<K,V> e = tab[i];
          tab[i] = new Entry<>(k, value, queue, h, e);
          if (++size >= threshold)
              resize(tab.length * 2);
          return null;
      }
docs: Associates the specified value with the specified key in this map.
  If the map previously contained a mapping for this key, the old
  value is replaced.
  
  @param key key with which the specified value is to be associated.
  @param value value to be associated with the specified key.
  @return the previous value associated with <tt>key</tt>, or
  <tt>null</tt> if there was no mapping for <tt>key</tt>.
  (A <tt>null</tt> return can also indicate that the map
  previously associated <tt>null</tt> with <tt>key</tt>.)