从Guava Multimap中的值返回键

时间:2013-12-21 15:39:44

标签: java key guava multimap

在我的Java代码中,我需要能够从值中找出键。我知道怎么做反之亦然,我已经在我的代码中使用了很多次,但是有一种方法可以获得密钥而只知道Guava Multimap中的值吗?提前谢谢。

3 个答案:

答案 0 :(得分:3)

Guava为Multimap提供了一种反演方法。请参阅Multimaps.invertFrom

如果您不经常需要反转,或者您的多重图很小,这可能对您没问题。但这种反转是一个昂贵的过程。根据JB Nizet在评论中的建议,您可以通过简单地保持正向和反向来获得一些效率。然而,两者都可以是多重映射,以允许非唯一性。

答案 1 :(得分:1)

使用ImmutableMultimap,您可以调用ImmutableMultimap.inverse()

答案 2 :(得分:0)

使用BiMap, https://google.github.io/guava/releases/19.0/api/docs/com/google/common/collect/BiMap.html

然后,

bimap.inverse().get(value)

会给你钥匙。