code: public static <K, V> ImmutableMap<K, V> copyOf(Map<? extends K, ? extends V> map) {
      if ((map instanceof ImmutableMap) && !(map instanceof SortedMap)) {
        @SuppressWarnings("unchecked") // safe since map is not writable
        ImmutableMap<K, V> kvMap = (ImmutableMap<K, V>) map;
        if (!kvMap.isPartialView()) {
          return kvMap;
        }
      }
      return copyOf(map.entrySet());
    }
docs: Returns an immutable map containing the same entries as {@code map}. The returned map iterates
  over entries in the same order as the {@code entrySet} of the original map. If {@code map}
  somehow contains entries with duplicate keys (for example, if it is a {@code SortedMap} whose
  comparator is not <i>consistent with equals</i>), the results of this method are undefined.
  
  <p>Despite the method name, this method attempts to avoid actually copying the data when it is
  safe to do so. The exact circumstances under which a copy will or will not be performed are
  undocumented and subject to change.
  
  @throws NullPointerException if any key or value in {@code map} is null