code: final void putMapEntries(Map<? extends K, ? extends V> m, boolean evict) {
          int s = m.size();
          if (s > 0) {
              if (table == null) { // pre-size
                  float ft = ((float)s / loadFactor) + 1.0F;
                  int t = ((ft < (float)MAXIMUM_CAPACITY) ?
                           (int)ft : MAXIMUM_CAPACITY);
                  if (t > threshold)
                      threshold = tableSizeFor(t);
              }
              else if (s > threshold)
                  resize();
              for (Map.Entry<? extends K, ? extends V> e : m.entrySet()) {
                  K key = e.getKey();
                  V value = e.getValue();
                  putVal(hash(key), key, value, false, evict);
              }
          }
      }
docs: Implements Map.putAll and Map constructor
  
  @param m the map
  @param evict false when initially constructing this map, else
  true (relayed to method afterNodeInsertion).