List<Map<String, String>>遍历相同数据合并(map里面某个key相同则合并数据)
2017-11-25 17:36
645 查看
public class Test { public static void main(String[] args) { //存放所有数据 List<Map<String, Object>> dataList = new ArrayList<Map<String,Object>>(); Map<String, Object> m1 = new HashMap<String, Object>(); m1.put("cpcj_sum", 0); m1.put("cjcj_sum", 0); m1.put("cycj_sum", 0); m1.put("nxcj_sum", 0); m1.put("lxcj_sum", 0); m1.put("yclcj_sum", 5); m1.put("zjcj_sum", 0); m1.put("days", "2017-11-24"); m1.put("xkcj_sum", 0); dataList.add(m1); Map<String, Object> m2 = new HashMap<String, Object>(); m2.put("cpcj_sum", 0); m2.put("cjcj_sum", 0); m2.put("cycj_sum", 0); m2.put("nxcj_sum", 0); m2.put("lxcj_sum", 1); m2.put("yclcj_sum", 0); m2.put("zjcj_sum", 0); m2.put("days", "2017-11-24"); m2.put("xkcj_sum", 0); dataList.add(m2); Map<String, Object> m3 = new HashMap<String, Object>(); m3.put("cpcj_sum", 0); m3.put("cjcj_sum", 0); m3.put("cycj_sum", 0); m3.put("nxcj_sum", 1); m3.put("lxcj_sum", 0); m3.put("yclcj_sum", 0); m3.put("zjcj_sum", 0); m3.put("days", "2017-11-24"); m3.put("xkcj_sum", 0); dataList.add(m3); Map<String, Object> m4 = new HashMap<String, Object>(); m4.put("cpcj_sum", 0); m4.put("cjcj_sum", 0); m4.put("cycj_sum", 0); m4.put("nxcj_sum", 1); m4.put("lxcj_sum", 0); m4.put("yclcj_sum", 0); m4.put("zjcj_sum", 0); m4.put("days", "2017-11-25"); m4.put("xkcj_sum", 0); dataList.add(m4); 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(dataList.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(dataList.get(j).get("cpcj_sum"))); int cjcj_sum = Integer.parseInt(String.valueOf(dataList.get(i).get("cjcj_sum"))) + Integer.parseInt(String.valueOf(dataList.get(j).get("cjcj_sum"))); int cycj_sum = Integer.parseInt(String.valueOf(dataList.get(i).get("cycj_sum"))) + Integer.parseInt(String.valueOf(dataList.get(j).get("cycj_sum"))); int nxcj_sum = Integer.parseInt(String.valueOf(dataList.get(i).get("nxcj_sum"))) + Integer.parseInt(String.valueOf(dataList.get(j).get("nxcj_sum"))); int lxcj_sum = Integer.parseInt(String.valueOf(dataList.get(i).get("lxcj_sum"))) + Integer.parseInt(String.valueOf(dataList.get(j).get("lxcj_sum"))); int yclcj_sum = Integer.parseInt(String.valueOf(dataList.get(i).get("yclcj_sum"))) + Integer.parseInt(String.valueOf(dataList.get(j).get("yclcj_sum"))); int zjcj_sum = Integer.parseInt(String.valueOf(dataList.get(i).get("zjcj_sum"))) + Integer.parseInt(String.valueOf(dataList.get(j).get("zjcj_sum"))); int xkcj_sum = Integer.parseInt(String.valueOf(dataList.get(i).get("xkcj_sum"))) + Integer.parseInt(String.valueOf(dataList.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); } } }
相关文章推荐
- 行专列,拆分json,实现数据的展示。Map<String, Object>存储多个相同的key,List<Map<String, Object>>
- 合并List<Map<String,String>>中的重复数据并对某个字段做累加
- 通过Struts标签和JSTL标签来遍历List<Map<String,String>>格式的数据
- c标签遍历List<Map<String, Object>> 数据格式
- jsp标签中遍历List<Map<String, List<Object>>>类型的数据
- 取出List<Map<String,Object>>里面Map的key:value值
- Map<String,object>也可以存list这样的数据,那么1map怎么遍历 2map能不能替代list 3既然map和list可以存下任何类型的数据,那么单map就可以存下任何类型的数据
- List<Map<String, String>> 合并map的字段数据问题
- 当需要对一个list<Map<String,Object>>中的map添加一个相同的数据是可以参考
- 如何去List<实体>里面实体某个属性相同的数据public class A{ public string Name { get; set; } public string Age { get; se
- List<Map<String,Object>>使用Java代码遍历以获取String,Object的值
- 用EL表达式获取List<Map<String,Object>>里面的值
- List<Map<String,Object>>使用Java代码遍历以获取String,Object的值
- android 子线程通过bundle、handler.sendMessage(message)向主线程传输多个类型数据,包括list<Map<String,Object>>
- 将List<Map<String, Object>>遍历后存入List<Object<String,String,List<Map<String, String>>>中>
- Map在jsp页面中的遍历(Map<String, List<T>>)
- List<Map<String,Object>>使用Java代码遍历以获取String,Object的值
- 用EL表达式获取List<Map<String,Object>>里面的值
- jsp遍历List<Map<String,Object>>,输出<Map<String,Objectr>>
- List<Map<String,Object>> list 在java代码和jsp中的遍历