您的位置:首页 > 其它

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);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐