Java实现,当然也可以数据库实现;

/**
* Created by shaozhiqi on 2019/7/31.
*/
public class TestUnion { @Test
public void test1() {
List<Map<String, Object>> dbList = new ArrayList<>();
Map map1 = new HashMap<>();
map1.put("id", "");
map1.put("assort_no", "");
map1.put("name", "test");
map1.put("leve1", "high");
map1.put("leve1Desc", "高风险");
dbList.add(map1); Map map2 = new HashMap<>();
map2.put("id", "");
map2.put("assort_no", "");
map2.put("name", "test");
map2.put("leve1", "low");
map2.put("leve1Desc", "低风险1");
dbList.add(map2); Map map3 = new HashMap<>();
map3.put("id", "");
map3.put("assort_no", "");
map3.put("name", "test2");
map3.put("leve1", "low");
map3.put("leve1Desc", "低风险2");
dbList.add(map3); Map map4 = new HashMap<>();
map4.put("id", "");
map4.put("assort_no", "");
map4.put("name", "test");
map4.put("leve1", "low");
map4.put("leve1Desc", "低风险3");
dbList.add(map4); Map map5 = new HashMap<>();
map5.put("id", "");
map5.put("assort_no", "");
map5.put("name", "test");
map5.put("leve1", "high");
map5.put("leve1Desc", "高风险5");
dbList.add(map5); for (Map<String, Object> m : dbList) {
List high = new ArrayList<String>();
List low = new ArrayList<String>();
for (Map<String, Object> mm : dbList) {
if (mm.get("assort_no").toString().equals(m.get("assort_no").toString())) {
if ("high".equals(mm.get("leve1").toString())) {
high.add(mm.get("leve1Desc").toString());
} else if ("low".equals(mm.get("leve1").toString())) {
low.add(mm.get("leve1Desc").toString());
}
}
}
m.put("high", high);
m.put("low", low);
} dbList.forEach(m -> {
System.out.println(GSON.toJson(m));
}); Map<String, Object> mapResult=new HashMap<>();
for (Map<String, Object> m : dbList) {
mapResult.put(m.get("assort_no").toString(),m);
}
System.out.println("========================去重后==========================");
mapResult.forEach((k,v) -> {
System.out.println(GSON.toJson(v));
});
} }

结果:

{"high":["高风险","高风险5"],"low":["低风险1","低风险3"],"assort_no":"","name":"test","leve1":"high","id":"","leve1Desc":"高风险"}
{"high":["高风险","高风险5"],"low":["低风险1","低风险3"],"assort_no":"","name":"test","leve1":"low","id":"","leve1Desc":"低风险1"}
{"high":[],"low":["低风险2"],"assort_no":"","name":"test2","leve1":"low","id":"","leve1Desc":"低风险2"}
{"high":["高风险","高风险5"],"low":["低风险1","低风险3"],"assort_no":"","name":"test","leve1":"low","id":"","leve1Desc":"低风险3"}
{"high":["高风险","高风险5"],"low":["低风险1","低风险3"],"assort_no":"","name":"test","leve1":"high","id":"","leve1Desc":"高风险5"}
======================去重后============================
{"high":["高风险","高风险5"],"low":["低风险1","低风险3"],"assort_no":"","name":"test","leve1":"high","id":"","leve1Desc":"高风险5"}
{"high":[],"low":["低风险2"],"assort_no":"","name":"test2","leve1":"low",

Java相同id的数据集合,合并数据为一条,并将几个字段内容合并为一个的更多相关文章

  1. MongoDB基础篇2:数据库/用户/数据集合的增删改

    一.数据库操作 创建并进入数据库: 命令:use DATABASE_NAME 示例:use tms   查看所有数据库: 命令:show dbs   注意: (1)新创建的数据库在show dbs命令 ...

  2. 【POI】java服务生成List数据集合,后台服务生成xlsx临时文件,并将临时文件上传到腾讯云上

    场景: java服务生成List数据集合,后台服务生成xlsx临时文件,并将临时文件上传到腾讯云上 今日份代码: 1.先是一个变量,作为文件名 private static final String ...

  3. 实现java 中 list集合中有几十万条数据,每100条为一组取出

    解决"java 中 list集合中有几十万条数据,每100条为一组取出来如何实现,求代码!!!"的问题. 具体解决方案如下: /** * 实现java 中 list集合中有几十万条 ...

  4. Java基础知识强化之集合框架笔记36:List练习之键盘录入多个数据在控制台输出最大值

    1. 键盘录入多个数据,以0结束,要求在控制台输出这多个数据中的最大值 分析: •  创建键盘录入数据对象 •  键盘录入多个数据,我们不知道多少个,所以用集合存储 •  以0结束,这个简单,只要键盘 ...

  5. Java://Comparator、Comparable的用法(按照要求将set集合的数据进行排序输出):

    import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; //comparator. ...

  6. Java学习:Set接口与HashSet集合存储数据的结构(哈希表)

    Set接口 java.util.Set接口 extends Collection接口 Set接口的特点: 不允许存储重复的元素 没有索引,没有带索引的方法,也不能使用普通的for循环遍历 java.u ...

  7. java的缓冲流及使用Properties集合存取数据(遍历,store,load)

    缓冲流 概述 字节缓冲流:BufferedInputStream,BufferedOutputStream 字符缓冲流:BufferedReader,BufferedWriter 缓冲流原理 缓冲区是 ...

  8. POI Excel 合并数据相同的行

    import java.io.Serializable; /** * POI Excel报表导出,列合并实体<br> * * @author WQ * */ public class Po ...

  9. 【Java EE 学习 69 下】【数据采集系统第一天】【实体类分析和Base类书写】

    之前SSH框架已经搭建完毕,现在进行实体类的分析和Base类的书写.Base类是抽象类,专门用于继承. 一.实体类关系分析 既然是数据采集系统,首先调查实体(Survey)是一定要有的,一个调查有多个 ...

随机推荐

  1. vue后台管理系统权限处理

    vue后台管理系统权限 1.权限问题:用户和管理员进入管理系统看到的模块是不一样的,管理员看的的要比用户看到的多.需要用到动态加载路由,router.addRouters()来动态的挂载路由 // 1 ...

  2. MyBatis框架——单表查询

    Mybatis单表查询,示例 1.创建数据库 /* Navicat MySQL Data Transfer Source Server : localhost Source Server Versio ...

  3. mac redis搭建集群

    1.下载redis客户端 2.修改redis.conf文件 port 6379 //端口 daemonize yes cluster-enabled yes //打开集群 cluster-config ...

  4. VsCode编辑器那些事

    1.怎么改成中文的? 按快捷键“Ctrl+Shift+P” 在框下点击“configur Display language" 会跳转至商店,选择插件下载“Chinese (Simplifie ...

  5. 【转载】因为我们是OIer

    我们是OIer, 所以我们 不用在跑道上挥汗如雨: 不用在球场上健步如飞: 更不用在没事的时候, 经受非人的体能训练-- 但是, 我们却要把头脑 高速运转, 还要接受一大堆 大学生也只是 " ...

  6. 从sslyze看TLS证书的点点滴滴

    纵观眼下,https已经深入大街小巷,成为网络生活中不可或缺的一部分了.提到了https,我们又不得不想到TLS(SSL),而提到了TLS,我们又不得不提到一个让人捉摸不透的东西:TLS证书. 关于证 ...

  7. 企业级自动化部署方案——ansible实现tomcat自动安装和配置

    共耗时10多个小时 思路一 总体设计 ansible-playbook目录结构 [root@ansible ~]# tree /etc/ansible/roles/tomcat /etc/ansibl ...

  8. 利用Python获取文件类型

    这里选择使用使用filetype获取文件的类型. 使用filetype之前,先用pip安装filetype. #!/usr/bin/python3 import filetype import arg ...

  9. 干货|漫画算法:LRU从实现到应用层层剖析(第一讲)

    今天为大家分享很出名的LRU算法,第一讲共包括4节. LRU概述 LRU使用 LRU实现 Redis近LRU概述 第一部分:LRU概述 LRU是Least Recently Used的缩写,译为最近最 ...

  10. Windows平台安装Beautiful Soup

    Windows平台安装Beautiful Soup 2013-04-01 09:31:23|  分类: Python|举报|字号 订阅     Beautiful Soup是一个Python的一个库, ...