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

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

List<Map>中根据map的同一指标项数据——去重代码的更多相关文章

  1. 【Graphite】使用dropwizard.metrics向Graphite中写入指标项数据

    graphite 定时向Graphite中写入指标项数据,指标项模拟个数3000个 使用的类库 官方文档   dropwizard的github地址 Metric官方文档 metrics.dropwi ...

  2. Map接口----Map中嵌套Map

    package cn.good.com; import java.util.HashMap; import java.util.Iterator; import java.util.Map; impo ...

  3. 解决Android中ListView列表只显示一项数据的问题

    思路:获取每项item的高度,并相加,再加上分割线的高度,作为整个ListView的高度,方法如下: public static void setListViewHeightBasedOnChildr ...

  4. Java根据条件删除Map中元素

    今天在写程序过程中,需要根据判断条件删除一个Map中的相应数据,我自然而然想到可以通过调用Map中的remove(Object key)函数进行删除:代码如下: public Map<Doubl ...

  5. Map中根据条件删除元素

    今天在写程序过程中,需要根据判断条件删除一个Map中的相应数据,我自然而然想到可以通过调用Map中的remove(Object key)函数进行删除:代码如下: public Map<Doubl ...

  6. STL模板中的map的使用与例题

    最近的计分赛,记得自己的都只是过了两题.遇到了两次map,自己在寒假看了一点的map,只知道在字符串匹配的时候可以用的到.但是自己对map的使用还是不够熟练使用,这回在第一次和第二次的计分赛中都遇到可 ...

  7. 【转】hive优化之--控制hive任务中的map数和reduce数

    一.    控制hive任务中的map数:  1.    通常情况下,作业会通过input的目录产生一个或者多个map任务. 主要的决定因素有: input的文件总个数,input的文件大小,集群设置 ...

  8. Map java中的map 如何修改Map中的对应元素

    Map java中的map 如何修改Map中的对应元素 Map以按键/数值对的形式存储数据,和数组非常相似,在数组中存在的索引,它们本身也是对象.         Map的接口         Map ...

  9. Java中Set Map List 的区别

    java中set map list的区别: 都是集合接口 简要说明 set --其中的值不允许重复,无序的数据结构 list   --其中的值允许重复,因为其为有序的数据结构 map--成对的数据结构 ...

随机推荐

  1. 拾遗:~/.zshrc 配置

    Tips: zsh 默认仅显示最近 16 条历史记录 $ # 等价于 history - :显示最近 条记录 $ history $ # 等价于 history - : 显示从第 条到最后 条,即是全 ...

  2. window_mysql踩坑

    https://blog.csdn.net/qq_37350706/article/details/81707862 先去官网下载点击的MySQL的下载 下载完成后解压 解压完是这个样子 配置系统环境 ...

  3. qt5.9.1 VS2017 qalgorithms.h

    qt5.9.1只有VS2017 64位支持, 在32位工程下会出现关于qalgorithms.h的错误,参考以下内容修改该头文件解决: https://codereview.qt-project.or ...

  4. 一.Python特点

    python第一节 简介 Python介绍 什么样的语言? 解释性语言:开发中没有编译的环节 交互式语言:在命令提示行执行python引擎,直接执行代码 面向对象语言:支持面向对象 优点 a.易学 b ...

  5. HTML 自定义元素教程

    组件是 Web 开发的方向,现在的热点是 JavaScript 组件,但是 HTML 组件未来可能更有希望. 本文就介绍 HTML 组件的基础知识:自定义元素(custom elements). 文章 ...

  6. java oop第15章_Socket网络编程

    一.   TCP/IP协议(Transmission Control Protocol/Internet Protocol)传输控制协议/Internet协议,是通信领域的基础.核心协议, 其他的协议 ...

  7. frp 配置多个 web 项目,无需购买域名 (访问内网可视化界面,jupyter noterbook, visdom, tensorboard)

    frp 配置多个 web 项目,无需购买域名 简单配置,参考 前言: 网上也有很多教程包括官方文档,都需要购买域名,并且把 frpc.ini 中 [web]节配置的  custom_domains 的 ...

  8. vSphere ESXi如何使用嵌套虚拟化(1-vSphere 6.0+linux虚拟化)

    今天准备在vSphere当中上传一个用workstation做出来的虚拟机,没想到遇到了很多问题,在这里,作为新手小白碰到了一些问题,在这里总结一下. 1.workstation做出来的虚拟机直接上传 ...

  9. $.extend() $.fn.extend()

    (非原创)jQuery为开发插件提拱了两个方法,分别是:jQuery.fn.extend();jQuery.extend();虽然 javascript 没有明确的类的概念,但是用类来理解它,会更方便 ...

  10. R语言 变量

    R语言变量 变量为我们提供了我们的程序可以操作的命名存储. R语言中的变量可以存储原子向量,原子向量组或许多Robject的组合. 有效的变量名称由字母,数字和点或下划线字符组成. 变量名以字母或不以 ...