天天看点

将list的map中value相同,key不同的map合成一个map

package com.org.test;

import java.util.ArrayList;

import java.util.Collection;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

public class Test {

     / **    

      * 

         * @Title:encList  

         * @Description:将empList进行转换,将empIdNo(身份证)相同,agentName(姓名)不同的地图合成一个地图,姓名用'#'分隔

         * @param @param empList

         * @param @return参数  

         * @return List <Map <String,Object >>返回类型  

         * @throws

      * /

    public List <Map <String,Object >> encList(List <Map <String,Object >> empList ){        

        List <Map <String,Object >> encList = new ArrayList <Map <String,Object >>();    

        Map <String,Object> encMap = new HashMap <String,Object>();

        for(Map <String,Object> map:empList){

            String key =(String)map.get(“empIdNo”)+“#”+(String)map.get(“agentName”);

            encMap.put(key,(String)map.get(“empIdNo”));

        }

        列表<字符串> strList =新的ArrayList <字符串>();

        Collection <Object> values = encMap.values();

        for(Object object:values){

            String value =(String)object;

            if(!strList.contains(value)){

                strList.add(value);

            }

        }

        对于(字符串S:strList){

        地图<字符串,对象>地图=新的HashMap <字符串,对象>();

        map.put( “empIdNo”,S);

        map.put( “AGENTNAME”,信息getKey(encMap,S));

        encList.add(地图);

        }        

        return encList;

    }

    public Map <String,Object> validateIdNo(List <Map <String,Object >> mList,List <Map <String,Object >> empList){    

        Map <String,Object> retrurnMap = new HashMap <String,Object>();

        String msg =“”;

        boolean returnFlag = true;

        如果{(空= mList && mList.isEmpty()&&空= empList && empList.isEmpty()!!!!)

            为(地图empMap:empList){

                为(地图MMAP:mList){

                    字符串名称= “#” +(字符串) mMap.get( “名称”)+ “#”;

                    String idNo = String.valueOf(mMap.get(“idNo”));

                    的System.out.println( “入参=======数据库AGENTNAME业务员===” + empMap.get( “AGENTNAME”

                    如果(将String.valueOf(empMap.get( “empIdNo”))。等于(IDNO)&&

                            !将String.valueOf(empMap.get( “AGENTNAME”))。包含(名称)){

                        的System.out.println(“= ==不通过==== empname === “+ empMap.get(” AGENTNAME “)+” ======;名称==========“+名称);

                            returnFlag = FALSE; //校验不通过

                            MSG + = “输入的身份证(” + IDNO + “)与姓名不符,请检查!”; 

                    }

                }

            }

        }

        retrurnMap.put(“msg”,msg);

        retrurnMap.put(“returnFlag”,returnFlag);

        的System.out.println( “校验结果====== returnFlag ===” + returnFlag + “======;提示信息==========” + MSG );

        return retrurnMap;

    }

    / **

     * 

        * @标题:getKey  

        * @Description:通过值获取键值  

        * @param @param map

        * @param @param value

        * @param @return参数  

        * @return String返回类型  

        * @throws

     * /

    public String getKey(Map <String,Object> map,String value){

       String keystrs =“”;

        for(Object key:map.keySet()){

            if(map。

                String keystr =(String)key;

                keystrs + = “#” + keystr.substring(keystr.indexOf( “#”)+ 1,keystr.length())+ “#”;

            }

        }

        返回keystrs;

    }

    公共静态无效的主要(字串[] args){

        //身份证来源模拟

        列表<地图<字符串,对象>> mList =新的ArrayList <地图<字符串,对象>>();

        Map <String,Object> emap1 = new HashMap <String,Object>();

        emap1.put(“idNo”,“420822199202165236”);

        emap1.put(“name”,“李小军”);

        Map <String,Object> emap2 = new HashMap <String,Object>();

        emap2.put(“idNo”,“

        Map <String,Object> emap3 = new HashMap <String,Object>();

        emap3.put(“idNo”,“420822125992021652”);

        emap3.put(“name”,“赵武”);

        mList.add(emap1);

        mList.add(emap2);

        mList.add(emap3);

        //身份证校验库列表模拟

        List <Map <String,Object >> empList = new ArrayList <Map <String,Object >>();

        Map <String,Object> map1 = new HashMap <String,Object>();

        map1.put(“empIdNo”,“420822199202165236”);

        map1.put(“agentName”,“李小军”);

        Map <String,Object> map2 = new HashMap <String,Object>();

        map2.put(“empIdNo”,“

        Map <String,Object> map3 = new HashMap <String,Object>();

        map3.put(“empIdNo”,“420822199202167236”);

        map3.put(“agentName”,“赵武”);

        Map <String,Object> map4 = new HashMap <String,Object>();

        map4.put(“empIdNo”,“420822199202165236”);

        map4.put(“agentName”,“周川芎”);

        Map <String,Object> map5 = new HashMap <String,Object>();

        map5.put(“empIdNo”,“420822199202165236”);

        map5.put(“agentName”,“周川打的费”);

        Map <String,Object> map6 = new HashMap <String,Object>();

        map6.put(“empIdNo”,“

        empList.add(MAP2);

        empList.add(MAP3);        

        empList.add(MAP4);        

        empList.add(MAP5);

        long startTime = System.currentTimeMillis();

        测试t =新测试();

        List <Map <String,Object >> list = t.encList(empList);

          for(Map <String,Object> empMap:list){

               System.out.println(“转换后映射的键值和值=== empIdNo ===”+ empMap.get(“empIdNo”)+“=== ; == AGENTNAME === “+ empMap.get(” AGENTNAME“)); 

           }    

          Map <String,Object> resultMap = t.validateIdNo(mList,list);

          long endTime = System.currentTimeMillis();

          的System.out.println( “耗时============” +(ENDTIME-的StartTime)+ “MS”);

    }

}