在我的Java代码中,我需要能够从值中找出键。我知道怎么做反之亦然,我已经在我的代码中使用了很多次,但是有一种方法可以获得密钥而只知道Guava Multimap中的值吗?提前谢谢。
答案 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)
会给你钥匙。