List<Map>去重并合并数量
今天在查询出的sql中,出现了部门名称和部门ID有重合的数据!当然这样在页面上展示也会容易一起误导!查询出的数据结构如下图

希望根据deptid中 >最后一个节点id把deptname 合并成>最后一个节点名称并且origincode 数量合并,现在贴代码,做个记录:
List<Map> dataList = bigScreenService.queryEventOrginCodeNum();
List<Map<String, Object>> resultList = new ArrayList<>();
if (dataList != null && dataList.size() > 0) {
for (int k = 0; k < dataList.size(); k++) {
Map orginMap = dataList.get(k);
String deptName = "";//部门名称判断
if (orginMap.get("deptName") != null && !"".equals(orginMap.get("deptName"))) {
deptName = orginMap.get("deptName").toString().replaceAll(">", ">");
String[] deptArr = deptName.split(">");
deptName = deptArr[deptArr.length - 1];
} String deptId = (String) orginMap.get("deptId");//部门ID判断
if (deptId.indexOf(">") != -1) {
String[] deptIdArr = deptId.split(">");
deptId = deptIdArr[deptIdArr.length - 1];
}
orginMap.put("deptName", deptName);
orginMap.put("deptId", deptId); //0为新增数据,1为拼接,对部门ID链最后一个节点相同的部门做相加
String deptChainId = (String) dataList.get(k).get("deptId");
int flag = 0;
for (int j = 0; j < resultList.size(); j++) {
String newDeptChainId = String.valueOf(resultList.get(j).get("deptId"));
if (deptChainId.equals(newDeptChainId)) {
Number sameNum = (Number) dataList.get(k).get("originCode");
Number sameNum2 = (Number) resultList.get(j).get("originCode");
int originCodeNum = sameNum.intValue() + sameNum2.intValue();
resultList.get(j).put("originCode", originCodeNum);
flag = 1;
continue;
} }
if (flag == 0) {
resultList.add(dataList.get(k));
}
}
}
注:java.lang.Number是Integer,Long的父类.
期望结果如下图:

本人用的是jdk7版本的,貌似听说jdk8对于map的重复数据处理更强大,对于以上的代码,有更好的写法,请不吝赐教!谢谢喽
List<Map>去重并合并数量的更多相关文章
- hadoop中map和reduce的数量设置
hadoop中map和reduce的数量设置,有以下几种方式来设置 一.mapred-default.xml 这个文件包含主要的你的站点定制的Hadoop.尽管文件名以mapred开头,通过它可以控制 ...
- hadoop中map和reduce的数量设置问题
转载http://my.oschina.net/Chanthon/blog/150500 map和reduce是hadoop的核心功能,hadoop正是通过多个map和reduce的并行运行来实现任务 ...
- sqlite 查询数据库中所有的表名,判断某表是否存在,将某列所有数值去重后获得数量
1.列出当前db文件中所有的表的表名 SQL语句:SELECT * FROM sqlite_master WHERE type='table'; 结构如下: 注:网上有人说可以带上db文件的名称,如: ...
- java 集合 HashSet 实现随机双色球 HashSet addAll() 实现去重后合并 HashSet对象去重 复写 HashCode()方法和equals方法 ArrayList去重
package com.swift.lianxi; import java.util.HashSet; import java.util.Random; /*训练知识点:HashSet 训练描述 双色 ...
- 将两个ListMap中同下标的map去重合并
public static void main(String[] args) { Map<String,Object> oneMap = new HashMap<>(); on ...
- hadoop map(分片)数量确定
之前学习hadoop的时候,一直希望可以调试hadoop源码,可是一直没找到有效的方法,今天在调试矩阵乘法的时候发现了调试的方法,所以在这里记录下来. 1)事情的起因是想在一个Job里设置map的数量 ...
- Codeforces--633D--Fibonacci-ish (map+去重)(twice)
Fibonacci-ish Time Limit: 3000MS Memory Limit: 524288KB 64bit IO Format: %I64d & %I64u Su ...
- Map去重,去重value相同的元素,保留key最小的那个值
Map<Integer,String>,Integer代表时间撮,String代表文本信息去重函数:就是删除Map中value相同的元素,只保留key最小的那个元素 public stat ...
- 统计map上的read数量
samtools flagstat /SRA111111/SRR111222/accepted_hits.bam 78406056 + 0 in total (QC-passed reads + QC ...
随机推荐
- hud2243 考研路茫茫——单词情结
考研路茫茫--单词情结 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem ...
- 解决:Module not found: node_modules\sass-loader\package.json (directory description file)
npm uninstall node-sass npm install node-sass@latest
- day04 列表增删改查、元祖以及range
01 课前小甜点 千万不要随意做决定 只要你做了决定,你要坚持下去. 02 昨日内容回顾 int <---> bool : 非0 True 0 False True 1 False 0 i ...
- Kvm --01 虚拟化基础概念
目录 1. 虚拟化基础概念 01. 什么是虚拟化? 02. 为什么要用虚拟化? 03. 虚拟化在企业中的应用场景? 04. 虚拟化软件介绍 05. Kvm介绍 2. 安装部署Kvm 3. Kvm虚拟机 ...
- 转载:PhpExcel使用方法
下面是总结的几个使用方法 include 'PHPExcel.php'; include 'PHPExcel/Writer/Excel2007.php'; //或者include 'PHPExcel/ ...
- hdu1231 最长连续子序列和
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1231 给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, N ...
- hibernate 插入Java.uitil.date时时分秒丢失问题解决
<property name="cj_time" column="cj_time"/> 不需要手动定义类型(定义了只能精确到日) new Date ...
- react-jsx和数组
JSX: 1.全称:JavaScriptXML, 2.react定义的一种类似于XML的JS扩展语法:XML+JS 3.作用:用来创建react虚拟DOM(元素)对象 var ele=<h1&g ...
- django 添加分页功能的包
Django pagination based upon the core pagination module
- Xcode7.1环境下上架iOS App到AppStore 流程①
前言部分 之前App要上架遇到些问题到网上搜上架教程发现都是一些老的版本的教程 ,目前iTunesConnect 都已经迭代好几个版本了和之前的 界面风格还是有很大的差别的,后面自己折腾了好久才终于把 ...