一、在两个list中,具有相同字段的对象,进行字段求和。
例如:有医院列表1(浑南区:4家,铁西区:2家)、药店列表2(浑南区:1家,大东区:3家),现在要统计每个区域对应的定点数量。最终要统计的结果为:浑南区:5家、铁西区:2家、大东区:3家。
private List<BarDO> addList(List<BarDO> failMedPie, List<BarDO> failPhacPie) {List<BarDO> pieFailList = new ArrayList<>();if (!failMedPie.isEmpty()) {//将相同key对应的值相加Map<String, Integer> sumMap = new HashMap<>();for (BarDO item : failMedPie) {sumMap.put(item.getType(), item.getValue());}for (BarDO item : failPhacPie) {if (sumMap.containsKey(item.getType())) {sumMap.put(item.getType(), sumMap.get(item.getType()) + item.getValue());} else {//key不同的,添加到sumMap。sumMap.put(item.getType(), item.getValue());}}//Map转对象pieFailList = sumMap.entrySet().stream().flatMap(entry -> Stream.of(new BarDO(entry.getKey(), entry.getValue()))).collect(Collectors.toList());}return pieFailList;}
二、Object、JSONObject、Map、String相互转换
1、将JSONObject对象转成String字符串
public static String jsonObjectToString(JSONObject jsonObject) {return jsonObject.toJSONString();}
2、java对象转换为String类型的json字符串
public static String objectToJson(Object obj) {return JSONObject.toJSONString(obj);}
3、json字符串转换为java对象
public static Object jsonToObject(String jsonStr) {return JSONObject.parseObject(jsonStr, Object.class);}
4、json字符串转换为JSONObject对象
public static JSONObject jsonToJSONObject(String jsonObj) {return JSONObject.parseObject(jsonObj);}
5、将java对象转换为JSONObject对象
public static JSONObject objectToJSONObject(Object obj) {return JSONObject.parseObject(JSONObject.toJSONString(obj));}
6、Map转java对象
List<BarDO> pieFailList = sumMap.entrySet().stream().flatMap(entry -> Stream.of(new BarDO(entry.getKey(), entry.getValue()))).collect(Collectors.toList());