Arraylist映射到Hashmap

时间:2012-05-08 23:28:58

标签: java json arraylist hashmap multimap

解析JSON文件时:

{
"heading1" : [
  {
    "heading2" : {
        "subhead2" : {
           "value" : "value<heading2>"
        }
     },
     "heading3" : [
        {
           "heading4" : {
              "subhead4" : "value<heading4>",
           },
           "heading5" : [
              {
                 "subhead51" : {
                    "511" : "value<heading51>",
                 },
                 "subhead52" : {
                    "522" : "value<heading52>",
                 },
               <..similar such heading5 sets>
              }
           ],
          }
      }
  }
 ],
}

我有一个ArrayList变量,如下所示。

   List<Map<String,String>> childMap = new ArrayList<Hashmap<String,String>>();

我正在为这个childMap获取值,如下所示:

  for(i = 0; i<result.length; i++){
    Map<String,String> childSubMap = new HashMap<String,String>();
     childsubMap.put(heading51,value<heading51>);
     childsubMap.put(heading52,value<heading52>);

    childMap.add(childSubMap);
  }

父地图变量:

   Map<String,String> parentMap = new HashMap<String,String>();
     parentMap.put(heading2,value<heading2>);
     parentMap.put(heading4,value<heading4>);

我正在使用最终的组合地图进行数据提取。

有没有办法将它组合起来如下:

                 Key             |       Value
  __________________________________________________________
  heading2, value<heading2>      |  <Set 1>
  heading4, value<heading4>      |    heading51, value<heading51>
                                 |    heading52, value<heading52>
                                 |  <Set 2>
                                 |    heading51, value<heading51>
                                 |    heading52, value<heading52>
                                 |  ..<many such Sets>

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

如果您只想将列表中的所有地图合并到一个地图中,那么请执行

for (Map<String,String> m : childMap)
{
    parentMap.putAll(childMap);
}

如果您有任何重复的密钥,最后一个密钥将被保留,其余密钥将被丢弃。