static Map similarEmptyMap(Map m) { if (m instanceof TreeMap) ret new TreeMap(((TreeMap) m).comparator()); if (m instanceof LinkedHashMap) ret new LinkedHashMap; // default to a hash map ret new HashMap; } static Map similarEmptyMap(Iterable m) { if (m instanceof TreeSet) ret new TreeMap(((TreeSet) m).comparator()); if (m instanceof LinkedHashSet) ret new LinkedHashMap; ret new HashMap; }