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问题 。