代码之家  ›  专栏  ›  技术社区  ›  Fortega

Java密钥映射

  •  6
  • Fortega  · 技术社区  · 16 年前

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

    例如:

    mySpecialHashMap.put("key1", "key2");
    
    mySpecialMap.getL2R("key1") returns "key2";
    mySpecialMap.getR2L("key2") returns "key1";
    
    4 回复  |  直到 8 年前
        1
  •  23
  •   agilob    8 年前

    所以你需要一个双向的地图。你可以使用 Apache Commons Collections BidiMap 或 Google Collections BiMap 为此。

        2
  •  3
  •   Jonik    14 年前

    你可能想看看 BiMap 从 Guava 图书馆(以前称为谷歌收藏)。

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

    BiMap<String, String> myBiMap = HashBiMap.create();
    myBiMap.put("key1", "key2");
    
    myBiMap.get("key1"); // returns "key2"
    myBiMap.inverse().get("key2"); // returns "key1"
    
        3
  •  2
  •   luvieere    16 年前

    是的,有 BiMap 来自谷歌收藏。

        4
  •  1
  •   Community Mohan Dere    9 年前

    或者对于可逆的枚举,请参见 this Stackoverflow question .