List<Map>中根据map的同一指标项数据——去重代码
2024-08-30 03:08:20
先看网络上,博客经常出现的错误代码:
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;
}
}
}
最新文章
- 通过中看不中用的代码分析Ioc容器,依赖注入....
- MAC 远程桌面链接 证书或链接无效
- css3、html5学习笔记
- Android屏幕适配dp、px两套解决办法
- BZOJ1008 /乘法原理+快速幂 解题报告
- [__NSCFString absoluteURL]错误的解决方案
- Toad for Oracle 12 download link
- 用户名 不在 sudoers文件中,此事将被报告
- main(int argc , char *argv[])
- Android学习3&mdash;电话拨号器
- <;Win32_5>;深入浅出Win32的计时器
- EditText 文本内容输入限制
- poj3414(bfs)
- h5 新增的invalid事件,貌似有很大bug
- 编译openwrt时报错:g++: internal compiler error: Killed (program cc1plus)
- web前端的前景
- Django forms 关于select和checkbox设置初始选中值
- python之装饰器(函数)
- AnyProxy做App网络流量测试
- JMeter学习(九)FTP测试计划(转载)