先看网络上,博客经常出现的错误代码:

for(ABatchAddCheckVO aBatchAddCheckVO : addList){
dto.put("aac001",aBatchAddCheckVO.getAac001());//设置人员编号
//由于sql语句使用union查询_sjql和ac4,如果2个表都有记录,就会存在重复,需要去重
List<Map> list = aFQService.getBatchAc5_SJQL(dto);
//list数据去重——冒泡去重
for(int i = 0; i < list.size(); i++){
//得到list中每一个map
Map map= list.get(i);
for (int j = 1; j < list.size(); j++) {
Map map2= list.get(j);
if (map.get("qlbzlb").equals(map2.get("qlbzlb"))) {
list.remove(j);
continue;
}
}
} if(ValidateUtil.isNotEmpty(list)){
succList.addAll(list);// 把查出来的标识数据,直接存到成功列表中
}else{
errList.add(aBatchAddCheckVO);//没有查出来,就是错误数据
}
}

一样的:

 if ("2".equals(dto.getAsString("czfs"))) {
List<Key> list = JSONObject.parseArray(dto.getAsString("list"), Key.class);
List<ADetailVO> aDetailVOList = new ArrayList<>(); //需要对list根据aac001去重,一个aac001会有多条记录,后台方法支持,根据一个aac001查出多条问题记录,
// 如果不根据aac001去重,就会出现一个人重复插入事件表和明细表问题 //list数据去重——冒泡去重
for(int i = 0; i < list.size(); i++){
//得到list中每一个map
Map map= list.get(i);
for (int j = 1; j < list.size(); j++) {
Map map2= list.get(j);
if (map.get("aac001").equals(map2.get("aac001"))) {
list.remove(j);
continue;
}
}
}

注意:

上述代码有bug,不是冒泡排序,会出问题,使用时,会过滤掉(即:remove 掉一半的数据)

更改如下:

            //需要对list根据aac001去重,一个aac001会有多条记录,后台方法支持,根据一个aac001查出多条问题记录,
// 如果不根据aac001去重,就会出现一个人重复插入事件表和明细表问题 //list数据去重——冒泡去重
for(int i = 0; i < list.size() - 1; i++){
//得到list中每一个map
Map map= list.get(i);
for(int j = list.size() - 1; j > i; j--){
Map map2= list.get(j);
if (map.get("aac001").equals(map2.get("aac001"))) {
list.remove(j);
continue;
}
}
}

最新文章

  1. 通过中看不中用的代码分析Ioc容器,依赖注入....
  2. MAC 远程桌面链接 证书或链接无效
  3. css3、html5学习笔记
  4. Android屏幕适配dp、px两套解决办法
  5. BZOJ1008 /乘法原理+快速幂 解题报告
  6. [__NSCFString absoluteURL]错误的解决方案
  7. Toad for Oracle 12 download link
  8. 用户名 不在 sudoers文件中,此事将被报告
  9. main(int argc , char *argv[])
  10. Android学习3&mdash;电话拨号器
  11. &lt;Win32_5&gt;深入浅出Win32的计时器
  12. EditText 文本内容输入限制
  13. poj3414(bfs)
  14. h5 新增的invalid事件,貌似有很大bug
  15. 编译openwrt时报错:g++: internal compiler error: Killed (program cc1plus)
  16. web前端的前景
  17. Django forms 关于select和checkbox设置初始选中值
  18. python之装饰器(函数)
  19. AnyProxy做App网络流量测试
  20. JMeter学习(九)FTP测试计划(转载)

热门文章

  1. 计算1到N中包含数字1的个数
  2. docker集群故障迁移
  3. Fiddler设置抓一个域名下个包
  4. 1.6 flux介绍
  5. 使用U盘或在本地电脑作为git远程仓库进行托管
  6. MySQL数据库(三)—— 表相关操作(二)之约束条件、关联关系、复制表
  7. Python匿名函数(lambda函数)
  8. vue swiper上下无缝轮播
  9. 2018-8-10-wpf-DoEvents-
  10. zic - 时区编辑器