static <A, B> MultiMap<B, A> reverseMultiMap(MultiMap<A, B> map) { new MultiMap<B, A> mm; for (A key : keys(map)) for (B value : map.get(key)) mm.put(value, key); ret mm; }