您当前的位置: 首页 > 

小志的博客

暂无认证

  • 0浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

List遍历相同数据合并(map里面某个key相同则合并数据)

小志的博客 发布时间:2020-04-04 18:27:41 ,浏览量:0

以下操作都在Test2类 中编写

package core.util;

import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class Test2 {
public static void main(String[] args) {
		
		List dataList =new ArrayList();//存放所有数据
		String jsonStr1 = "{\"resultCode\" : 0,\"result\" : [ {\"orgId\" : null,\"categoryId\" : \"333f1328e6c6a7f3c2c7\",\"categoryName\" : \"北京分公司\",\"workOrderCount\" : null,\"planCounter\" : 15,\"actualCounter\" : 6,\"rank\" : null}, {\"orgId\" : null,\"categoryId\" : \"fc1bb1880968e77b5020\",\"categoryName\" : \"上海分公司\",\"workOrderCount\" : null,\"planCounter\" : 22,\"actualCounter\" : 13,\"rank\" : null}],\"msgId\" : \"fb971668\",\"success\" : true}";
        String jsonStr2 = "{\"resultCode\" : 0,\"result\" : [ {\"orgId\" : null,\"categoryId\" : \"333f1328e6c6a7f3c2c7\",\"categoryName\" : \"北京分公司\",\"workOrderCount\" : null,\"planCounter\" : 25,\"actualCounter\" : 5,\"rank\" : null}, {\"orgId\" : null,\"categoryId\" : \"fc1bb1880968e77b5020\",\"categoryName\" : \"上海分公司\",\"workOrderCount\" : null,\"planCounter\" : 36,\"actualCounter\" : 6,\"rank\" : null}],\"msgId\" : \"5225121a\",\"success\" : true}";
        String jsonStr3 = "{\"resultCode\" : 0,\"result\" : [ {\"orgId\" : null,\"categoryId\" : \"333f1328e6c6a7f3c2c7\",\"categoryName\" : \"北京分公司\",\"workOrderCount\" : null,\"planCounter\" : 25,\"actualCounter\" : 8,\"rank\" : null}, {\"orgId\" : null,\"categoryId\" : \"fc1bb1880968e77b5020\",\"categoryName\" : \"上海分公司\",\"workOrderCount\" : null,\"planCounter\" : 115,\"actualCounter\" : 8,\"rank\" : null}],\"msgId\" : \"e70ced01\",\"success\" : true}";
        String jsonStr4 = "{\"resultCode\" : 0,\"result\" : [ {\"orgId\" : null,\"categoryId\" : \"333f1328e6c6a7f3c2c7\",\"categoryName\" : \"北京分公司\",\"workOrderCount\" : null,\"planCounter\" : 40,\"actualCounter\" : 10,\"rank\" : null}, {\"orgId\" : null,\"categoryId\" : \"fc1bb1880968e77b5020\",\"categoryName\" : \"上海分公司\",\"workOrderCount\" : null,\"planCounter\" : 100,\"actualCounter\" : 30,\"rank\" : null}],\"msgId\" : \"7589d0d7\",\"success\" : true}";
        //把json串jsonStr1、jsonStr2、jsonStr3、jsonStr4转成需要的新list1、list2、list3、list4
        List list1=getCommon(jsonStr1,"1");
        List list2=getCommon(jsonStr2,"2");
        List list3=getCommon(jsonStr3,"3");
        List list4=getCommon(jsonStr4,"4");
        System.out.println("list1--"+list1);
        System.out.println("list2--"+list2);
        System.out.println("list3--"+list3);
        System.out.println("list4--"+list4);
        /**
         * 输出如下:
         * list1--[{optcompletrate=0.40, categoryName=北京分公司, categoryId=333f1328e6c6a7f3c2c7}, {optcompletrate=0.59, categoryName=上海分公司, categoryId=fc1bb1880968e77b5020}]
		 * list2--[{inspcompletrate=0.20, categoryName=北京分公司, categoryId=333f1328e6c6a7f3c2c7}, {inspcompletrate=0.17, categoryName=上海分公司, categoryId=fc1bb1880968e77b5020}]
		 * list3--[{jobcompletrate=0.32, categoryName=北京分公司, categoryId=333f1328e6c6a7f3c2c7}, {jobcompletrate=0.07, categoryName=上海分公司, categoryId=fc1bb1880968e77b5020}]
		 * list4--[{termusedrate=0.25, categoryName=北京分公司,categoryId=333f1328e6c6a7f3c2c7}, { termusedrate=0.30, categoryName=上海分公司,categoryId=fc1bb1880968e77b5020}]
         */
        //把4个list分别合并成一个dataList
        dataList.addAll(list1);
        dataList.addAll(list2);
        dataList.addAll(list3);
        dataList.addAll(list4);
        System.out.println("dataList=="+dataList);
        /**
         * 输出如下:
         * dataList==[{optcompletrate=0.40, categoryName=北京分公司, categoryId=333f1328e6c6a7f3c2c7}, 
		 *            {optcompletrate=0.59, categoryName=上海分公司, categoryId=fc1bb1880968e77b5020},
		 *    	      {inspcompletrate=0.20, categoryName=北京分公司, categoryId=333f1328e6c6a7f3c2c7},
		 *    		  {inspcompletrate=0.17, categoryName=上海分公司, categoryId=fc1bb1880968e77b5020},
		 *    		  {jobcompletrate=0.32, categoryName=北京分公司, categoryId=333f1328e6c6a7f3c2c7}, 
		 *    		  {jobcompletrate=0.07, categoryName=上海分公司, categoryId=fc1bb1880968e77b5020},
		 *    		  {categoryName=北京分公司, categoryId=333f1328e6c6a7f3c2c7, termusedrate=0.25}, 
		 *    		  {categoryName=上海分公司, categoryId=fc1bb1880968e77b5020, termusedrate=0.30}]
         * */   
        List countList =getNewList(dataList);
		System.out.println("新list======"+countList);
		/**
		 * 输出如下:
		 * 新list======[{jobcompletrate=0.25, optcompletrate=0.40, inspcompletrate=0.25, categoryName=北京分公司, categoryId=333f1328e6c6a7f3c2c7, termusedrate=0.25}, 
		 * 			   {jobcompletrate=0.30, optcompletrate=0.59, inspcompletrate=0.30, categoryName=上海分公司, categoryId=fc1bb1880968e77b5020, termusedrate=0.30}]
		 * 
		 * */
		//转成新的json
		String jsonnew=JSON.toJSONString(countList);
		System.out.println("新json======"+jsonnew);
		//转成需要的格式如下:
		/**
		 * 输出如下:
		 * 新json======[{"jobcompletrate":"0.25","optcompletrate":"0.40","inspcompletrate":"0.25","categoryName":"北京分公司","categoryId":"333f1328e6c6a7f3c2c7","termusedrate":"0.25"},
		 * 			   {"jobcompletrate":"0.30","optcompletrate":"0.59","inspcompletrate":"0.30","categoryName":"上海分公司","categoryId":"fc1bb1880968e77b5020","termusedrate":"0.30"}]
		 */
	}
}
/***
	 * 处理json返回的数据中,需要字段转成list方法
	 * */
	public static List getCommon(String jsonstr,String str){
		JSONObject root = new JSONObject().parseObject(jsonstr);// 将json格式的字符串转换成json
        JSONArray dataArr = root.getJSONArray("result");//根据json对象中数组的名字解析出其所对应的值
		List list = new ArrayList();
		Map map;
		//对解析出的数组进行遍历,获取所有的点位值
		for (int i = 0; i             
关注
打赏
1661269038
查看更多评论
0.1536s