// does not store null values static MultiMap treeMultiMapIndexByField(Collection c, S field) { MultiMap map = treeMultiMap(); for (O a : c) { O val = getOpt(a, field); if (val != null) map.put(val, a); } ret map; } static MultiMap mapMethodLike treeMultiMapIndexByField(S field, Collection c) { ret treeMultiMapIndexByField(c, field); }