static Map cloneMap(Map map) { if (map == null) ret new HashMap; // assume mutex is equal to collection synchronized(map) { ret map instanceof TreeMap ? new TreeMap((TreeMap) map) // copies comparator : map instanceof LinkedHashMap ? new LinkedHashMap(map) : new HashMap(map); } }