code: static <K, V> ImmutableMap<K, V> create(int n, Entry<K, V>[] entryArray) {
      Map<K, V> delegateMap = Maps.newHashMapWithExpectedSize(n);
      for (int i = 0; i < n; i++) {
        entryArray[i] = makeImmutable(entryArray[i]);
        V oldValue = delegateMap.putIfAbsent(entryArray[i].getKey(), entryArray[i].getValue());
        if (oldValue != null) {
          throw conflictException("key", entryArray[i], entryArray[i].getKey() + "=" + oldValue);
        }
      }
      return new JdkBackedImmutableMap<>(delegateMap, ImmutableList.asImmutableList(entryArray, n));
    }
docs: Creates an {@code ImmutableMap} backed by a JDK HashMap. Used when probable hash flooding is
  detected. This implementation may replace the entries in entryArray with its own entry objects
  (though they will have the same key/value contents), and will take ownership of entryArray.