双键集映射

时间:2014-07-07 09:51:02

标签: java collections map

我需要一个Map<String,Integer>来存储set o字符串和整数之间的绑定,例如:

"one"   <-> 1
"two"   <-> 2
"three" <-> 3

特别是我需要使用String值和int值作为访问此映射的键。我的意思是:get("one")返回1get(1)返回"one"

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

2 个答案:

答案 0 :(得分:1)

使用两个HashMap并编写一个方法来查询其中一个,具体取决于您提供的输入(Stringint)或使用Guava库&#39 ; s HashBiMap,它在幕后为你做了类似的事情。

答案 1 :(得分:0)

可以根据需要创建倒置地图。这不会支持两个键的相同值。

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;
    }
}