List<Map<String,Object>> updateList = new ArrayList<>();
Map<String,Object> updateMap = new HashMap<String,Object>();
updateMap.put("customerNo", "test110");
updateMap.put("oprPhone", "176214566471");
updateMap.put("oprIdNo", "1234567891234567892");
updateMap.put("opType", "11");
updateList.add(updateMap);
List<Map<String,Object>> oprList = new ArrayList<>();
Map<String,Object> oprMap = new HashMap<String,Object>();
oprMap.put("customerNo", "test110");
oprMap.put("oprPhone", "17621456647");
oprMap.put("oprIdNo", "1234567891234567891");
oprMap.put("opType", "1");
Map<String,Object> oprMap2 = new HashMap<String,Object>();
oprMap2.put("customerNo", "test110");
oprMap2.put("oprPhone", "123456789");
oprMap2.put("oprIdNo", "123456789123456789");
oprMap2.put("opType", "1");
oprList.add(oprMap);
oprList.add(oprMap2);
方法一:借鉴于该大神 https://www.aliyun.com/jiaocheng/539735.html
for (Map<String,Object> map : oprList) {
if (updateList.contains(map)) {
// map 和updateList中含有相同的数据
oprList.remove(map);// 删除重复的数据
}
} 经过测试发现该方法不符合我的业务场景需求,该方法是删除相同的数据,我的map里面如果有一个字段不相同就删除不了。
方法二: 借鉴于该大神 https://blog.csdn.net/high2011/article/details/50493028/
Collection exists=new ArrayList<Map<String,Object>>(oprList);
Collection notexists=new ArrayList<Map<String,Object>>(oprList);
exists.removeAll(updateList);
System.out.println("oprList中不存在于_set中的:"+exists);
notexists.removeAll(exists);
System.out.println("oprList中存在于_set中的:"+notexists);
经过测试发现该方法不符合我的业务场景需求,该方法是删除相同的数据,我的map里面如果有一个字段不相同就删除不了。
方法二: 借鉴于该大神 https://zhidao.baidu.com/question/1111501162003671739.html
List<Map<String,Object>> qwMap = new ArrayList<Map<String,Object>>();
for(int i = 0; i < oprList.size() ; i++) {
Map<String,Object> map = oprList.get(i);
String authorStr = (String) map.get("customerNo");
System.out.println("customerNo" + " : " + authorStr);
for(int j=0;j<updateList.size();j++){
Map<String,Object> forUpdateMap = updateList.get(j);
if(map.get("customerNo").equals(forUpdateMap.get("customerNo")) && map.get("oprIdNo").equals(forUpdateMap.get("oprIdNo"))){
qwMap.add(updateMap);
break;
}
}
}
System.out.println("=== qwMap ===:"+GsonUtil.toString(qwMap)); 符合业务要求