没有BiMap的Map和reverseMapping

时间:2014-11-02 21:55:38

标签: java map

如果不使用BiMap的.inverse()函数,你会如何进行反向映射?

我得到了:

public static Map<String, Set<String>> reverseMapping(Map<String, String> mapping)

我试过这样的事,但没有把我带到任何地方。

      Map <String, Set<String>> remap = new HashMap<String, Set<String>>();
        for (String name : mapping.keySet()) {
            String color = mapping.get(name);
            if(remap.containsKey(color)){
            ...;
            }
            else{
                ...
            }


}
        return remap;

}

1 个答案:

答案 0 :(得分:1)

你不是那么遥远

public static Map<String, Set<String>> reverseMapping(Map<String, String> mapping)
{
    // slight change in the next line 
    Map <String, Set<String>> remap = new HashMap<String, Set<String>>();
    for (String name : mapping.keySet()) {
        String color = mapping.get(name);
        // Until here its ok, see comment below
    }
    // added the return
    return remap;
}

现在,您必须检查重新映射是否已包含带有 颜色的设置。如果是这样,请将 name 添加到其中。如果不是,您需要创建一个新的Set,将 name 添加到它,并将新的集合放入 remap

希望这有帮助