How to do map inversion with Guava with non-unique values?
You can do this: Map<K, V> map = …; ListMultimap<V, K> inverse = Multimaps.invertFrom(Multimaps.forMap(map), ArrayListMultimap.<V,K>create()); Do note that pretty much any time you write Map<K, List<V>> or Map<K, Set<V>> or some such, a ListMultimap<K, V> or SetMultimap<K, V> is what you really want.