在 Google Guava Multimap 中交换键和值的关系

Swapping relation of keys and values in a Google Guava Multimap

我有一个

Multimap<String, Integer> map = ...

我可以在哪里 map.get("somekey") 检索所有匹配的整数。

现在我想找到具有给定整数的键,例如

Collection<String> keys = map.getByValue(Integer.of(4))

其中 returns Multimap 中将给定 Integer 存储为值的所有键。

在 Google Guava 中有没有简单的方法来做到这一点?

发布问题后不久,我发现以下内容可以很好地完成工作:

Multimap<String, Integer> reversed = ...
Multimaps.invertFrom(map, reversed);

它实际上会做一个复制,一个不实际复制所有条目的解决方案仍然很有趣。