Java密钥 - 密钥映射

时间:2009-11-05 13:10:10

标签: java map hashmap bidirectional

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

所以例子:

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

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

4 个答案:

答案 0 :(得分:23)

所以你想要一个双向地图。您可以使用Apache Commons Collections BidiMapGoogle 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