将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”);
    }

}
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值