今天查数据库数据的时候发现一个问题,明明添加了数据库查重的方法,如果导入文件中存在和数据库相同值的时候会提示并拒绝提交,但数据库还是出现了重复字段,一开始有点纳闷,后来发现原来是因为一个excel文件中存在多条重复数据的时候,会全部导进数据库,于是又加了一段excel文件数据查重的方法Map<String,Integer> resultMap = new HashMap<String, Integer>(); for(int i = 0; i < nameList.size(); i++){ String tmp = nameList.get(i); int count = resultMap.get(tmp) != null ? resultMap.get(tmp) : 0; count = count + 1; resultMap.put(tmp, count); }
resultMap中的key就是不同的name,有多少个key,就有多少个不同的name,其value就是每个name重复的次数。再通过Map的遍历将count大于1的key存入list返回,这样前台就可以打印出重复的数目和字符。
以下是整个方法的代码:private List<WSecondarySnid> validateSingleInExcel(List<WSecondarySnid> snids){ Map<String,Integer> resultMap = new HashMap<String, Integer>(); List<WSecondarySnid> reSnids=new ArrayList<WSecondarySnid>(); for(int i = 0; i < snids.size(); i++){ String tmp = snids.get(i).getSnid(); int count = resultMap.get(tmp) != null ? resultMap.get(tmp) : 0; count = count + 1; resultMap.put(tmp, count); } for(String getKey: resultMap.keySet()){ if(resultMap.get(getKey)!=1){ WSecondarySnid wss = new WSecondarySnid(); wss.setSnid(getKey); reSnids.add(wss); } } return reSnids; }
java导入Excel中数据查重的方法
最新推荐文章于 2024-04-23 11:07:41 发布