Java密钥 - 密钥图

问题描述:

我需要一种可以在两个方向上访问的地图,所以使用的是键 - 键结构而不是键值。这在Java中存在吗?如果没有,创建它的最好方法是什么?Java密钥 - 密钥图

所以例如:

mySpecialHashMap.put("key1", "key2"); 

mySpecialMap.getL2R("key1") returns "key2"; 
mySpecialMap.getR2L("key2") returns "key1"; 
+3

Dupe:http://stackoverflow.com/questions/1670038/does-java-have-a-hashmap-with-reverse-lookup – finnw 2009-11-05 17:50:45

所以你想要一个双向映射。您可以使用Apache Commons Collections BidiMapGoogle Collections BiMap

是的,有来自谷歌集合BiMap

您可能需要查看Guava库(以前称为Google Collections)的BiMap

其中HashBiMap被用作 “mySpecialHashMap” 的一个例子:

BiMap<String, String> myBiMap = HashBiMap.create(); 
myBiMap.put("key1", "key2"); 

myBiMap.get("key1"); // returns "key2" 
myBiMap.inverse().get("key2"); // returns "key1" 
+0

如果有人不使用番石榴:它是完全甜蜜的,你可能应该。看到[这篇文章(和评论)](http://stackoverflow.com/a/132639/56285)为一些伟大的学习资源。 – Jonik 2011-12-20 17:25:12

或者可逆枚举看到this Stackoverflow question