static Map mapKeyAndFunction(Iterable l, O f) { ret mapKeyAndFunction(f, l); } static Map mapLike mapKeyAndFunction(O f, Iterable l) { new HashMap map; if (l != null) for (O o : l) map.put(o, callF(f, o)); ret map; } static Map mapKeyAndFunction(Map map, IF2 f) { new HashMap map2; if (map != null) for (A key, B value : map) map2.put(key, callF(f, key, value)); ret map2; } static Map mapKeyAndFunction(Iterable l, IF1 f) { ret mapKeyAndFunction(f, l); }