我需要一个Map<String,Integer>
来存储set o字符串和整数之间的绑定,例如:
"one" <-> 1
"two" <-> 2
"three" <-> 3
特别是我需要使用String值和int值作为访问此映射的键。我的意思是:get("one")
返回1
,get(1)
返回"one"
。
实现这一目标的最佳方法是什么?是否有一些Map实现可以帮助我?
答案 0 :(得分:1)
使用两个HashMap
并编写一个方法来查询其中一个,具体取决于您提供的输入(String
或int
)或使用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;
}
}