n个List<Map>合并,Map中某属性值相等的value值相加
List<Map> maps1 =[{"bigtypes":100,"num":400},{"bigtypes":200,"num":300},{"bigtypes":400,"num":500},{"bigtypes":600,"num":500}]
List<Map> maps2 =[{"bigtypes":400,"num":720},{"bigtypes":500,"num":320},{"bigtypes":200,"num":120}]
List<Map> maps3 =[{"bigtypes":700,"num":120},{"bigtypes":500,"num":320},{"bigtypes":100,"num":510}]
目的为将 bigtypes 属性值相等 num属性值进行相加,bigtypes属性值不相等的List<Map>累加
将json数组循环赋值给 foodIntakeType
List<TDiet> tDiets = dietApiService.getDietsByDate(userId, startDate, endDate);
List<Map<String, String>> list = new ArrayList();
List<Map<String, String>> newList = new ArrayList();
int talls=0;
if(tDiets.size()>0){
int a=0;
for(TDiet td:tDiets){
talls+=Integer.parseInt(td.getFoodIntakeMeasure());//摄入总量
a++;
String foodIntakeType =td.getFoodIntakeType();
org.json.JSONArray jsonArray = new org.json.JSONArray(foodIntakeType);
int iSize = jsonArray.length();
for (int i = 0; i < iSize; i++) {
org.json.JSONObject jsonObj = jsonArray.getJSONObject(i);
String bigtypes = jsonObj.get("bigtypes").toString();
String num = jsonObj.get("num").toString();
Map<String, String> maMap = new HashMap<String, String>();
maMap.put("bigtypes", bigtypes);
maMap.put("num", num);
if(a>1){//多组数据
newList=list;
Map<String,String> newMap =new HashMap<String, String>();
int b=0;
for (int j = 0; j < list.size(); j++) {
newMap= list.get(j);
if(bigtypes.equals(newMap.get("bigtypes").toString())){//key值相等的:value相加
b++;
newList.remove(j);
Map<String, String> maMap2 = new HashMap<String, String>();
maMap2.put("bigtypes", bigtypes);
int xx= Integer.parseInt(newMap.get("num"))+Integer.parseInt(num);
maMap2.put("num",xx+"" );
newList.add(maMap2);
break;
}
}
if(b==0){//key值与list<map>的map无共同key的:list新增
newList.add(maMap);
}
list= newList;
}else{//只有一组数据
list.add(maMap);
}
} }
//取百分比
newList=new ArrayList();
for (int c = 0; c < list.size(); c++) {
Map<String,String> newMap2 =new HashMap<String, String>();
Map<String,String> oldmap=new HashMap<String, String>();
oldmap = list.get(c);
newMap2.put("bigtypes", oldmap.get("bigtypes"));
int aa= Integer.parseInt(oldmap.get("num"));
newMap2.put("num",towNumDivide(aa,talls)+"%");
newList.add(newMap2);
}
list=newList;
}
n个List<Map>合并,Map中某属性值相等的value值相加的更多相关文章
- 使用mybatis如果类属性名和数据库中的属性名不一样取值就会为null
使用mybatis时如果类属性名和数据库中的属性名不一样取值就会为null 这是不能再去改变javabean中的属性,只能改变sql语句.语句如下所示: <select id="sel ...
- CSS中 Zoom属性
CSS中 Zoom属性 其实Zoom属性是IE浏览器的专有属性,Firefox等浏览器不支撑.它可以设置或检索对象的缩放比例.除此之外,它还有其他一些小感化,比如触发ie的hasLayout属性,清除 ...
- CSS中Position属性static、absolute、fixed、relative
在html中网页可以看成一个立体的空间,一个完整的页面是由很多个页面堆积形成的,如下图所示 CSS中Position属性有四个可选值,它们分别是:static.absolute.fixed.rel ...
- Educational Codeforces Round 2 E. Lomsat gelral 启发式合并map
E. Lomsat gelral Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/600/prob ...
- scala 两个map合并,key相同时value相加/相减都可
scala 两个map合并,key相同时value相加 1.map自带的合并操作 2.map函数 2.1示例 2.2合并两个map 3.用foldLeft 3.1 语法 3.2 合并两个map 1.m ...
- [原创]java WEB学习笔记59:Struts2学习之路---OGNL,值栈,读取对象栈中的对象的属性,读取 Context Map 里的对象的属性,调用字段和方法,数组,list,map
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- EL表达式获取Map和List中的值
EL表达式获取Map和List中的值 EL表达式取Map中的值: 当Map中是String,String时 后台servlet中: Map<String, String> map1 = ...
- java中遍历MAP,嵌套map的几种方法
java中遍历MAP的几种方法 Map<String,String> map=new HashMap<String,String>(); map.put("us ...
- 如何在WindowsPhone Bing Map控件中显示必应中国中文地图、谷歌中国中文地图。
原文:如何在WindowsPhone Bing Map控件中显示必应中国中文地图.谷歌中国中文地图. 最近正好有点业余时间,所以在做做各种地图.Bing Map控件本身就能显示必应地图,但是很遗憾微软 ...
随机推荐
- springmvc权限拦截器
配置文件spring-servlet.xml <?xml version="1.0" encoding="UTF-8"?> <beans xm ...
- .htaccess重写URL讲解
使用ThinkPHP和Laravel等框架的都知道,所以的请求都需要经过index.php文件入口,无论你的URI是什么. 当然除了访问的是静态文件或者访问路径的文件真实存在,例如你访问xxx.com ...
- HDU 5965 三维dp 或 递推
题意:= =中文题 思路一:比赛时队友想的...然后我赛后想了一下想了个2维dp,但是在转移的时候,貌似出了点小问题...吧?然后就按照队友的思路又写了一遍. 定义dp[i][j][k],表示第i列, ...
- mynotebook
www.linux.org/threads/beats-audio-on-linux.4443/ askubuntu.com/questions/303775/envy-15-beats-audio- ...
- 为什么要 urlencode()
1.是因为当字符串数据以url的形式传递给web服务器时,字符串中是不允许出现空格和特殊字符的2. 因为 url 对字符有限制,比如把一个邮箱放入 url,就需要使用 urlencode 函数,因为 ...
- WPF从我炫系列4---装饰控件的用法
这一节的讲解中,我将为大家介绍WPF装饰控件的用法,主要为大家讲解一下几个控件的用法. ScrollViewer滚动条控件 Border边框控件 ViewBox自由缩放控件 1. ScrollView ...
- cfedu/A/求和
题目连接 思路: 用数组直接标记2^n,n属于(0~~31);用LL或者INT都可以,不会爆.但是ans要用LL. #include <set> #include <map> ...
- JS中获取页面单选框radio和复选框checkbox中当前选中的值
单选框:单选框的name值全部相同 页面有一组单选框的元素<td><input type="radio name="radioid">满意< ...
- CSS3简介
选择器 盒模型 背景和边框 文字特效 2d/3d转换 动画 多列布局 用户界面
- Python -- OOP高级 -- __slots__、@property
__slots__属性可以设置 允许被设置的属性 class Student: __slots__ = ("name", "age") >>> ...