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意义上的“答案”。。。