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));
  }
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));
  }
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 ) ) ; }
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.
Creates an {