static L keysWithValueThat(IPred pred, Map map) { if (map == null) null; new L l; for (Map.Entry e : map.entrySet()) if (pred.get(e.getValue())) l.add(e.getKey()); ret l; } static L keysWithValueThat(Map map, IPred pred) { ret keysWithValueThat(pred, map); }