【问题标题】:Java key - key mapJava 键 - 键映射
【发布时间】:2010-12-13 10:06:09
【问题描述】:

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

例如:

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

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

【问题讨论】:

标签: java map hashmap bidirectional


【解决方案1】:

所以你想要一个双向地图。您可以为此使用Apache Commons Collections BidiMapGoogle Collections BiMap

【讨论】:

    【解决方案2】:

    您可能想查看Guava 库(以前称为 Google 收藏集)中的 BiMap

    HashBiMap 用作“mySpecialHashMap”的示例:

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

    【讨论】:

    • 如果有人还没有使用 Guava:它非常甜,你可能应该这样做。请参阅 this post (and comments) 了解一些很棒的学习资源。
    【解决方案3】:

    是的,有来自 Google 收藏的BiMap

    【讨论】:

      【解决方案4】:

      或者对于可逆枚举,请参阅this Stackoverflow question

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-16
        • 2018-06-12
        • 1970-01-01
        • 2019-09-13
        • 2013-05-04
        • 1970-01-01
        相关资源
        最近更新 更多