I need create inverse map - select unique values and for them find keys. Seems that only way is to iterate all key/value pairs, because entrySet returns set of so value not
With Guava
Multimaps.transformValues(Multimaps.index(map.entrySet(), Map.Entry::getValue), Map.Entry::getKey)
You'll get a multimap (basically a map of lists) in return.