我可以在Java中使用键 - 键映射(而不是键值)吗?

时间:2012-01-16 15:39:37

标签: java map

如果我不仅需要快速搜索关键字,还需要按价值搜索,该怎么办?换句话说,是否存在类似键值的结构而不是键值?

3 个答案:

答案 0 :(得分:9)

听起来你想要一个 bimap - 如果我是你,我会使用Guava中的实现;有一个BiMap界面,以及HashBiMapImmutableBiMap等各种实现。

请注意,您通常会从一个“侧面”(K1到K2)查看BiMap,只需调用inverse()即可获得相反的视图(K2到K1)。

答案 1 :(得分:5)

有几个图书馆有这样的东西。例如,Google Guava有一个BiMap(双向地图)。不幸的是,标准Java库中没有双向映射。

答案 2 :(得分:0)

为了澄清,你会得到某种带有以下键的地图:值对:

Map<String, String> map = new HashMap<String, String>();
map.put("foo", "Freddy");
map.put("bar", "Bobby");

然后,你想做map.get(&#34; foo&#34;)并获得Freddy,或者做map.get(&#34; Freddy&#34;)并获得foo?

如果是,请检查this post