一尘不染

Java中的双向地图?

java

我在Java中有一个简单的整数到字符串映射,但是我需要能够轻松地从整数中检索字符串,以及从字符串中检索整数。我尝试过Map,但是它只能从整数中检索字符串,这是一种方法:

private static final Map<Integer, String> myMap = new HashMap<Integer, String>();
// This works one way:
String myString = myMap.get(myInteger);

// I would need something like:
Integer myInteger = myMap.getKey(myString);

有正确的方法来做到双向吗?

另一个问题是,我只有几个不变的常量值(1->"low", 2->"mid", 3->"high",所以采用复杂的解决方案就不值得了。


阅读 214

收藏
2020-09-08

共1个答案

一尘不染

您可以为此使用Google Collections API, 最近将其
重命名为Guava,特别是BiMap

双向映射(或“双向映射”)是一种保留其值以及其键的唯一性的映射。此约束使bimap可以支持“反向视图”,这是另一个bimap,它包含与此bimap相同的条目,但具有相反的键和值。

2020-09-08