如何保存map <string,list <string>&gt;通过自我检查其键值的值来到另一个相同类型的映射

时间:2018-04-17 09:18:25

标签: javascript salesforce apex-code apex

我有一张'String as key&amp; amp; String列表作为值'。我想检查键值对,并希望地图自我查找其新值并创建所有组合的完整路径。参考此图片

enter image description here

我希望这张图片给出一个清晰的想法,因为我无法用语言解释这一点。请帮我解决这个问题。提前谢谢。

1 个答案:

答案 0 :(得分:0)

快速而肮脏的解决方案:

Map<String, List<String>> sndMap = new Map<String, List<String>>();
// Go throuch first map and copy all keys to second map
for (String key : firstMap.keySet()) {
  if (!sndMap.containsKey(key)) {
    sndMap.put(key, new List<String>());
  }
 List<String> tmp = sndMap.get(key);
 tmp.add(firstMap.get(key).get(0));
 sndMap.put(key, tmp);
 } 
 // Go throuch all List of values in first map and check if a value is a key in the second map.  
 for (List<String> values : firstMap.values()) {
   for (String s : values) {
    if (sndMap.containsKey(s)) {
        List<String> tmpList = sndMap.get(s);
        tmpList.add(s);
        sndMap.put(s, tmpList);
    }
  }
}