static Map lambdaMapLike mapKeysAndValues(O f, Map map) { ret mapKeysAndValues(f, f, map); } static Map mapKeysAndValues(O fKey, O fValue, Map map) { if (map == null) null; Map m = similarEmptyMap(map); for (O key, val : (Map) map) m.put(callF(fKey, key), callF(fValue, val)); ret m; } static Map mapKeysAndValues(IF1 f, Map map) { ret mapKeysAndValues(f, f, map); } static Map mapKeysAndValues(IF1 fKey, IF1 fValue, Map map) { if (map == null) null; Map m = similarEmptyMap(map); for (A key, B val : map) m.put(fKey.get(key), fValue.get(val)); ret m; }