Java密钥 – 密钥映射

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

例如:

mySpecialHashMap.put("key1", "key2"); mySpecialMap.getL2R("key1") returns "key2"; mySpecialMap.getR2L("key2") returns "key1"; 

所以你想要一个双向地图。 您可以使用Apache Commons Collections BidiMap或Google Collections BiMap 。

您可能希望从Guava库(以前称为Google Collections)查看BiMap 。

将HashBiMap用作“mySpecialHashMap”的示例:

 BiMap myBiMap = HashBiMap.create(); myBiMap.put("key1", "key2"); myBiMap.get("key1"); // returns "key2" myBiMap.inverse().get("key2"); // returns "key1" 

是的,有来自Google Collections的BiMap 。

或者对于可逆枚举,请参阅此Stackoverflow问题 。

Interesting Posts