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