两个json数组key相同的数据合并,并排序
JSONObject jo1 = new JSONObject();
jo1.put("month", "2016-03");
jo1.put("sum", "200");
JSONObject jo2 = new JSONObject();
jo2.put("month", "2015-11");
jo2.put("sum", "400");
JSONObject jo3 = new JSONObject();
jo3.put("month", "2015-07");
jo3.put("sum", "300");
JSONArray ja1 = new JSONArray();
ja1.add(jo1);
ja1.add(jo2);
ja1.add(jo3);
JSONObject jo4 = new JSONObject();
jo4.put("month", "2016-03");
jo4.put("sum", "100");
JSONObject jo5 = new JSONObject();
jo5.put("month", "2016-02");
jo5.put("sum", "200");
JSONObject jo6 = new JSONObject();
jo6.put("month", "2015-09");
jo6.put("sum", "700");
JSONObject jo7 = new JSONObject();
jo7.put("month", "2015-07");
jo7.put("sum", "200");
JSONArray ja2 = new JSONArray();
ja2.add(jo4);
ja2.add(jo5);
ja2.add(jo6);
ja2.add(jo7);
JSONArray ja3 = new JSONArray();
JSONObject jo = new JSONObject();
for(int i=0;i<ja1.size();i++){
for(int j=0;j<ja2.size();j++){
if(ja1.getJSONObject(i).getString("month").equals(ja2.getJSONObject(j).getString("month"))){
jo.put("month", ja1.getJSONObject(i).getString("month"));
int sum1=Integer.parseInt(ja1.getJSONObject(i).getString("sum"));
int sum2=Integer.parseInt(ja2.getJSONObject(j).getString("sum"));
int sum = sum1+sum2;
jo.put("sum", sum);
ja3.add(jo);
ja1.remove(i);
ja2.remove(j);
}
}
}
for(int k=0;k<ja1.size();k++){
ja3.add(ja1.get(k));
}
for(int m=0;m<ja2.size();m++){
ja3.add(ja2.get(m));
}
Collections.sort(ja3);
System.out.println(ja3);
JSONObject temp = null;
boolean exchange = false;
for (int i = 0; i < ja3.size(); i++) {
exchange = false;
for (int j = ja3.size() - 2; j >= i; j--) {
if (ja3.getJSONObject(j+1).getString("month").compareTo(
ja3.getJSONObject(j).getString("month")) >= 0) {
temp = ja3.getJSONObject(j+1);
ja3.set(j + 1, ja3.get(j));
ja3.set(j, temp);
exchange = true;
}
}
if (!exchange)
break;
}
阅读更多- php将两个不同长度数组相同的key合并到一个数组,不同的key也合并进去
- php将两个数组相同的key合并到一个数组
- php将两个数组相同的key合并到一个数组
- php两个数组合并在一起,根据两个数组相同的键进行排序(时间排序)
- .net 合并两个数组为一个新的数组,两数组中相同的数据只存在一个
- 数据结构与算法[LeetCode]—两个有序数组合并及找中点问题
- 编写一个程序,输入两个包含 5 个元素的数组,先将两个数组升序排序,然 后将这两个数组合并成一个升序数组(合并排序)。
- 同一个数据库里,两个相同字段但是顺序不同的数据表合并教程
- 合并两个排序好的数组并升序排序
- 合并两个排序数组
- List<Map<String, String>>遍历相同数据合并(map里面某个key相同则合并数据)
- js中比较两个数组中是否含有相同的元素,可去重,可删除合并为新数组
- 两个排序后数组中是否存在相同数字
- C/C++,数据结构实现两个链表的合并(尾插法建立单链表,求链表长度,直接插入排序)
- 两个数组合并,去掉重复的然后再排序
- 两个已排序的数组进行合并
- javascript 常见数组操作( 1、数组整体元素修改 2、 数组筛选 3、jquery 元素转数组 4、获取两个数组中相同部分或者不同部分 5、数组去重并倒序排序 6、数组排序 7、数组截取slice 8、数组插入、删除splice(需明确位置) 9、数组遍历 10、jQuery根据元素值删除数组元素的方)
- 编程分别输入两个按从小到大排序的数组a和b,将这两个有序数组合并,使合并后的数组仍有序 (从小到大)
- 【Java】两个排序后的数组A和B,其中A的末端有足够的缓冲容纳B。编写一个方法,将B合并入A并排序。
- 相同结构的两个表中相同字段的数据相加,不相同的字段合并