我需要一种可以在两个方向上访问的地图,因此使用键 - 键结构而不是键值。这是否存在于Java中?如果没有,创建它的最佳方法是什么?
所以例子:
mySpecialHashMap.put("key1", "key2");
mySpecialMap.getL2R("key1") returns "key2";
mySpecialMap.getR2L("key2") returns "key1";
答案 0 :(得分:23)
所以你想要一个双向地图。您可以使用Apache Commons Collections BidiMap或Google Collections BiMap进行此操作。
答案 1 :(得分:3)
您可能希望查看BiMap库(以前称为Google收藏集)中的Guava。
将HashBiMap用作“mySpecialHashMap”的示例:
BiMap<String, String> myBiMap = HashBiMap.create();
myBiMap.put("key1", "key2");
myBiMap.get("key1"); // returns "key2"
myBiMap.inverse().get("key2"); // returns "key1"
答案 2 :(得分:2)
是的,Google Collections中有BiMap。
答案 3 :(得分:1)
或者对于可逆枚举,请参阅this Stackoverflow question。