Java 双键集映射

Java 双键集映射,java,collections,map,Java,Collections,Map,我需要一个Map来存储一组字符串和整数之间的绑定,例如: "one" <-> 1 "two" <-> 2 "three" <-> 3 “一”1 “两个”2 “三”3 特别是我需要使用字符串值和int值作为键来访问这个映射。我的意思是:get(“one”)返回1和get(1)返回“one” 实现这一目标的最佳方式是什么?是否有一些Map实现可以帮助我?或者使用两个HashMap并根据您提供的输入编写一个方法来查询其中一个(String或int),或者

我需要一个
Map
来存储一组字符串和整数之间的绑定,例如:

"one"   <-> 1
"two"   <-> 2
"three" <-> 3
“一”1
“两个”2
“三”3
特别是我需要使用字符串值和int值作为键来访问这个映射。我的意思是:
get(“one”)
返回
1
get(1)
返回
“one”


实现这一目标的最佳方式是什么?是否有一些Map实现可以帮助我?

或者使用两个
HashMap
并根据您提供的输入编写一个方法来查询其中一个(
String
int
),或者使用Guava库的
HashBiMap
,它可以在幕后为您做类似的事情。

可以根据需要创建一个反转地图。这将不支持两个键的相同值

public class InvertableMap<K, V>  extends HashMap<K, V> {

    public  InvertableMap<V, K> getInvertedMap() {
        InvertableMap<V, K> outputMap = new InvertableMap<>();
        for (K k : keySet()) {
            V v = get(k);
            outputMap.put(v, k);
        }
        return outputMap;
    }
}
公共类InvertableMap扩展了HashMap{
公共InvertableMap getInvertedMap(){
InvertableMap outputMap=新的InvertableMap();
对于(K:keySet()){
V=get(k);
输出映射。put(v,k);
}
返回outputMap;
}
}

Guava BiMap应该做这项工作:是的
BiMap
是go@Marco13谢谢你,请写下你的答案,这样我就可以把它捡起来。像这样的问题有几百个。第一个websearch结果:向上投票无论你想向上投票,链接并不是stackoverflow意义上的“答案”。。。