LinkedHashMap 根据PUT顺序排序Map
最近工程里面报表需要合计 , 因为所有的项都是动态的,所以只能动态添加。
思路是使用Map,初始化所有Map,然后在Map中合计并且覆盖。
使用HashMap , 初始化后所有动态项的顺序都乱了。
Map<String , Double> totalMap = new  HashMap<String, Double>(); 
for (Map<String, Object> map : itemList) {
itemSql += "SUM("+map.get("ITEM_NO")+") AS "+map.get("ITEM_NO")+" ,";
totalMap.put(map.get("ITEM_NO").toString(), 0d);
}
TreeMap也无法满足我的需求,TreeMap属于自然排序。 动态项肯定是人工调整的,我只需要根据PUT先后顺序排序即可。
Google了下,发现HashMap子类LinkedHashMap可以实现迭代顺序(既插入顺序) 代码如下:
Map<String , Double> totalMap = new  LinkedHashMap<String, Double>();    //用于统计动态项
for (Map<String, Object> map : itemList) {
itemSql += "SUM("+map.get("ITEM_NO")+") AS "+map.get("ITEM_NO")+" ,";
totalMap.put(map.get("ITEM_NO").toString(), 0d);
}
LinkedHashMap 根据PUT顺序排序Map的更多相关文章
- java中的TreeMap如何顺序按照插入顺序排序
		java中的TreeMap如何顺序按照插入顺序排序 你可以使用LinkedHashMap 这个是可以记住插入顺序的. 用LinkedHashMap吧.它内部有一个链表,保持插入的顺序.迭代的时候,也 ... 
- MapReduce:将下面的两排数字先按第一排排序,然后再按第二排排序,要求顺序排序
		MapReduce:将下面的两排数字先按第一排排序,然后再按第二排排序,要求顺序排序 文件如下: 这个案例主要考察我们对排序的理解,我们可以这样做: 代码如下(由于水平有限,不保证完全正确,如果发现错 ... 
- LinkedHashMap如何保证顺序性
		一. 前言 先看一个例子,我们想在页面展示一周内的消费变化情况,用echarts面积图进行展示.如下: 我们在后台将数据构造完成 HashMap<String, Integer> map ... 
- Stream排序Map集合
		最近小编自己一个人在负责一个项目的后台开发,其中有一部分是统计相关的功能,所以需要一些排序或者分组的操作,之前这种操作小编觉得还是比较麻烦的,虽热有一些现成的工具类,但是工具类的写法也是比较复杂的,但 ... 
- 排序map
		1.根据map的值,升序排序 Map<String, Integer> map = new TreeMap<String, Integer>(); map.put(" ... 
- 获取EMF文件内全部文字, 并按照左上到右下的顺序排序
		因为工作要求, 需要对EMF文件文字内容做分析.....SO, 如下代码出现了 懒得加注释了, 反正对外接口属性就那么几个, 根据英文猜吧, 很容易的 说明一下: 这个东西结果会对所有文字内容按照左上 ... 
- mysql 查询数据时按照A-Z顺序排序返回结果集
		mysql 查询数据时按照A-Z顺序排序返回结果集 $sql = "SELECT * , ELT( INTERVAL( CONV( HEX( left( name, 1 ) ) , 16, ... 
- C#12种顺序排序
		这篇主要写关于顺序排序的十二种算法,也是我有关算法的第一帖.主要是写,对每种算法的理解与测试. 速度测试,主要根据一千.一万.五万.百万这 四种.速度纪录还是用Stopwatch 这个类.使用随机数R ... 
- ORACLE自定义顺序排序-转
		ORACLE可以借助DECODE函数,自定义顺序排序: select * from ( select 'Nick' as item from dual union all select 'Viki' ... 
随机推荐
- 闲话Pipeline In Maya
			在整个行业都在高呼“农业学大寨,流程学xx”的大背景下,你想推出一个新的更好的流程有着极大的难度. 在2014年的时候行业内大部分公司就有了资产的概念,会成立资产部门去专门创建资产,供后续环节多次重用 ... 
- CentOS 6 update curl
			touch /etc/yum.repos.d/city-fan.repo vi /etc/yum.repos.d/city-fan.repo add the following: [CityFan] ... 
- .NET版本与CLR版本及兼容性
			WIN7原生的.net是2.0和3.5,打开和关闭windows功能里面可以看到.另外C:\Windows\Microsoft.NET\Framework下面也能看到..net framework1. ... 
- 二叉树遍历(flist)(二叉树,已知中序层序,求先序)
			问题 C: 二叉树遍历(flist) 时间限制: 1 Sec 内存限制: 128 MB提交: 76 解决: 53[提交][状态][讨论版][命题人:quanxing][Edit] [TestDat ... 
- 了解原型设计工具pencil project
			Pencil Pencil是一个功能强大的界面原型设计工具,可以设计网页和桌面程序界面,侧重点在于设计,支持自定义控件和导出模板,功能确实很强大. 内置形状集合 从2.0.2开始铅笔默认包含更多形状集 ... 
- Linux(CentOS)用户修改密码有效期(chage命令)
			Linux设置用户密码的有效期限 解决: 先查看密码过期时间,现在是90天 1 2 3 4 5 6 7 8 [root@01 ~]# chage -l testuser Last password c ... 
- mybatis关于ORM的使用以及设计(三)[参数对象转换为SQL语言]
			上节分析了Mapper对象的创建. 在ORM的定义中可以理解为Object->SQLMapper抽象层(这一层并不负责具体的SQL执行.这一层可以理解为SQL代理层) 本节分析以下内容: ①Sq ... 
- IC5141安装备忘
			X Error of failed request: BadName (named color or font does not exist) Major opcode of failed re ... 
- xshell使用密钥登陆linux
			一.环境CentOS 7.4xshell 6 二.介绍远程ssh连接服务器 默认是用的密码验证的方式,而且还是root账号,这样的验证方式会有安全隐患,容易被人暴力破解root密码.如果改成用密钥登陆 ... 
- CentOS7怎么更换yum源
			163yum源:1)备份当前yum源防止出现意外还可以还原回来cd /etc/yum.repos.d/cp /CentOS-Base.repo /CentOS-Base-repo.bak2)使用wge ... 
