public static <K, V> Map<K, V> copyOf(Map<? extends K, ? extends V> map)
	{
		return new ImmutableMap<K, V>(new LinkedHashMap<K, V>(map));
	}
public static <K, V> Map<K, V> copyOf(Map<? extends K, ? extends V> map)
	{
		return new ImmutableMap<K, V>(new LinkedHashMap<K, V>(map));
	}
public static < K , V > Map < K , V > copyOf ( Map < ? extends K , ? extends V > map ) { return new ImmutableMap < K , V > ( new LinkedHashMap < K , V > ( map ) ) ; }
Creates a new {@code ImmutableSet} from the given {@code Iterable}.

@param <K> the type of the {@code Map}'s keys.
@param <V> the type of the {@code Map}'s values.
@param map the source {@code Map}.

@return the created {@code ImmutableMap}.

@throws NullPointerException if {@code map} is {@code null}.
Creates a new { @code ImmutableSet } from the given { @code Iterable } .