List Map 合并

public static void main(String[] args) {  
  //存放所有数据  
  List<Map<String, Object>> dataList = new ArrayList<Map<String,Object>>(); 
  Map<String, Object> m1 = new LinkedHashMap<String, Object>(); 
  m1.put(“cpcj_sum”, 1); 
  m1.put(“cjcj_sum”, 2); 
  m1.put(“cycj_sum”, 3); 
  m1.put(“nxcj_sum”, 4);
  m1.put(“lxcj_sum”, 5);  
  m1.put(“yclcj_sum”, 6); 
  m1.put(“zjcj_sum”, 7); 
  m1.put(“days”, “2017-11-24”);
  m1.put(“xkcj_sum”, 8);
  dataList.add(m1);
  
  Map<String, Object> m2 = new LinkedHashMap<String, Object>(); 
  m2.put(“cpcj_sum”, 2); 
  m2.put(“cjcj_sum”, 3); 
  m2.put(“cycj_sum”, 4); 
  m2.put(“nxcj_sum”, 5);  
  m2.put(“lxcj_sum”, 6); 
  m2.put(“yclcj_sum”, 7);  
  m2.put(“zjcj_sum”, 8); 
  m2.put(“days”, “2017-11-24”); 
  m2.put(“xkcj_sum”, 9); 
  dataList.add(m2);
  Map<String, Object> m4 = new LinkedHashMap<String, Object>(); 
  m4.put(“cpcj_sum”, 11); 
  m4.put(“cjcj_sum”, 12); 
  m4.put(“cycj_sum”, 13); 
  m4.put(“nxcj_sum”, 14); 
  m4.put(“lxcj_sum”, 15); 
  m4.put(“yclcj_sum”, 16);  
  m4.put(“zjcj_sum”, 17); 
  m4.put(“days”, “2017-11-25”); 
  m4.put(“xkcj_sum”, 18); 
  dataList.add(m4);
  Map<String, Object> m3 = new LinkedHashMap<String, Object>(); 
  m3.put(“cpcj_sum”, 3); 
  m3.put(“cjcj_sum”, 4); 
  m3.put(“cycj_sum”, 5); 
  m3.put(“nxcj_sum”, 6); 
  m3.put(“lxcj_sum”, 7); 
  m3.put(“yclcj_sum”, 8);  
  m3.put(“zjcj_sum”, 9);
  m3.put(“days”, “2017-11-24”); 
  m3.put(“xkcj_sum”, 10); 
  dataList.add(m3); 
    
  List<Map<String, Object>> countList = new ArrayList<Map<String,Object>>();
  //用于存放最后的结果 
  for (int i = 0; i < dataList.size(); i++) { 
    String days = String.valueOf(dataList.get(i).get(“days”).toString()); 
    int flag = 0;//0为新增数据,1为增加count  
    for (int j = 0; j < countList.size(); j++) { 
     String newdays = String.valueOf(countList.get(j).get(“days”).toString());
     if (days.equals(newdays)) {  
      int cpcj_sum = Integer.parseInt(String.valueOf(dataList.get(i).get(“cpcj_sum”))) + Integer.parseInt(String.valueOf(countList.get(j).get(“cpcj_sum”))); 
      int cjcj_sum = Integer.parseInt(String.valueOf(dataList.get(i).get(“cjcj_sum”))) + Integer.parseInt(String.valueOf(countList.get(j).get(“cjcj_sum”)));  
      int cycj_sum = Integer.parseInt(String.valueOf(dataList.get(i).get(“cycj_sum”))) + Integer.parseInt(String.valueOf(countList.get(j).get(“cycj_sum”)));  
      int nxcj_sum = Integer.parseInt(String.valueOf(dataList.get(i).get(“nxcj_sum”))) + Integer.parseInt(String.valueOf(countList.get(j).get(“nxcj_sum”)));  
      int lxcj_sum = Integer.parseInt(String.valueOf(dataList.get(i).get(“lxcj_sum”))) + Integer.parseInt(String.valueOf(countList.get(j).get(“lxcj_sum”)));  
      int yclcj_sum = Integer.parseInt(String.valueOf(dataList.get(i).get(“yclcj_sum”))) + Integer.parseInt(String.valueOf(countList.get(j).get(“yclcj_sum”))); 
      int zjcj_sum = Integer.parseInt(String.valueOf(dataList.get(i).get(“zjcj_sum”))) + Integer.parseInt(String.valueOf(countList.get(j).get(“zjcj_sum”))); 
      int xkcj_sum = Integer.parseInt(String.valueOf(dataList.get(i).get(“xkcj_sum”))) + Integer.parseInt(String.valueOf(countList.get(j).get(“xkcj_sum”))); 
      countList.get(j).put(“cpcj_sum”, cpcj_sum);  
      countList.get(j).put(“cjcj_sum”, cjcj_sum);  
      countList.get(j).put(“cycj_sum”, cycj_sum);  
      countList.get(j).put(“nxcj_sum”, nxcj_sum);  
      countList.get(j).put(“lxcj_sum”, lxcj_sum);  
      countList.get(j).put(“yclcj_sum”, yclcj_sum);    
      countList.get(j).put(“zjcj_sum”, zjcj_sum);   
      countList.get(j).put(“xkcj_sum”, xkcj_sum);   
      flag = 1;     
      continue;    
     }  
    }   
    if (flag == 0) { 
     countList.add(dataList.get(i));  
     }  
   }  
   for (Map<String, Object> map : countList) { 
    System.out.println(map); 
   } 
 }

你可以使用Java的Stream API来合并两个List<Map>并去重。下面是一个示例代码: ```java import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<Map<String, Object>> list1 = new ArrayList<>(); Map<String, Object> map1 = new HashMap<>(); map1.put("id", 1); map1.put("name", "John"); map1.put("age", 25); list1.add(map1); List<Map<String, Object>> list2 = new ArrayList<>(); Map<String, Object> map2 = new HashMap<>(); map2.put("id", 2); map2.put("name", "Jane"); map2.put("age", 30); list2.add(map2); List<Map<String, Object>> mergedList = mergeAndDistinct(list1, list2); for (Map<String, Object> map : mergedList) { System.out.println(map); } } public static List<Map<String, Object>> mergeAndDistinct(List<Map<String, Object>> list1, List<Map<String, Object>> list2) { List<Map<String, Object>> mergedList = new ArrayList<>(list1); mergedList.addAll(list2); List<Map<String, Object>> distinctList = mergedList.stream() .collect(Collectors.toMap( map -> map.get("id"), map -> map, (map1, map2) -> map1 )) .values() .stream() .collect(Collectors.toList()); return distinctList; } } ``` 在上述代码中,我们定义了两个包含MapList,即list1和list2。我们使用`addAll()`方法将两个List合并为一个mergedList。然后,我们使用Stream API对mergedList进行操作,使用`Collectors.toMap()`方法按照id字段进行去重,并将结果转换为List。最后,我们打印出合并且去重后的结果。 注意:在这个示例中,假设每个Map对象都有一个名为"id"的字段用于唯一标识。你可以根据实际需求调整代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值