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;
}
相关推荐
JSON数组在JavaScript中表现为`[]`,它可以包含任意类型的数据,如字符串、数字、布尔值、null,甚至是其他数组或对象。数组的创建和操作在JavaScript中是相当直观的: 1. **创建数组**: - `var arrayObj = new ...
如`push`、`pop`、`shift`、`unshift`用于操作数组元素,`slice`、`splice`用于数组切片和插入/删除元素,`concat`用于合并数组,`indexOf`和`lastIndexOf`查找元素位置,以及`sort`对数组排序: ```javascript arr....
Pandas提供了`pd.merge`和`pd.concat`两个主要的合并函数,它们分别用于根据键(key-based)和位置(position-based)合并数据。合并时可以处理重复列名,并支持按索引连接数据。 总的来说,Pandas库为Python程序员...
* concat() 合并多个数组 * filter() 过滤数组中的元素 * flat() 将数组拍平 * slice() 提取数组中的元素 js 堆和栈 在 JavaScript 中,有两种类型的数据:基本数据类型和引用数据类型。 基本数据类型包括数值、...
- `concat()`:将两个或多个数组合并成一个新的数组。 - `sort()`:对数组元素进行排序。 - `reverse()`:反转数组元素的顺序。 #### 对象(Object) 对象是键值对的集合,键通常是字符串,而值可以是任何数据...
12. **Merge**: 合并两个集合,如果键重复,将优先保留第二个集合的值。 **六、集合的排序操作** 13. **Sort & SortDesc**: 对集合进行升序或降序排序。 14. **SortBy & SortByDesc**: 根据指定的键进行排序。 *...
题目要求将两个数组合并,并删除第二个数组的第二个元素。这可以通过`concat()`和`splice()`方法实现: ```javascript var array1 = ['a', 'b', 'c']; var bArray = ['d', 'e', 'f']; var cArray = array1....
PHP提供了一系列数组处理函数,如`is_array()`用于检查是否为数组,`count()`返回数组元素数量,`sort()`对数组排序,`array_merge()`合并数组,`array_push()`向数组末尾添加元素。 面向对象编程是PHP的核心特性之...
4. **$skip**和**$limit**:这两个阶段分别用于跳过指定数量的文档和限制返回的文档数量。在JavaScript中,它们可以通过数组的切片方法来实现。 5. **$project**:这个阶段用于修改输入文档的结构,可以选择性地...
`Object.entries()`方法返回一个数组,数组中的每个元素都是一个包含两个值的数组:对象的键和对应的值。这样的设计使得我们能够方便地同时访问键和值,而不仅仅是单个键或单个值。下面是一个简单的示例: ```...
8. **数据合并**:`merge()`和`concat()`分别用于基于键(key-based)和位置(position-based)的合并操作。 9. **数据排序**:`sort_values()`和`sort_index()`可以对数据进行排序,按值或按索引排列。 10. **...
14. **比较两个列表的元素**:可以使用`set`操作或列表推导式比较两个列表的交集和并集。 15. **新式类与经典类**:新式类继承自`object`,支持更多的特性,如`__slots__`和元类。 16. **内置数据结构**:Python的...
这个方法返回一个数组,数组的每个元素都是一个包含两个项目的子数组:原始对象中的一个属性名和对应的属性值。在本文中,我们将深入探讨`Object.entries()`的工作原理、用法以及在实际开发中的应用。 ### 1. `...
Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用...
因此,自定义的帮助类可能包含优化的字符串处理方法,如`TrimAll`(批量去除字符串两端空白),`Join`(高效地合并字符串数组)或`FormatWith`(格式化字符串,类似`String.Format`但更高效)。 2. **日期和时间**...
- **$.extend()**: 合并两个或更多对象,常用于扩展jQuery对象或自定义插件。 - **$.each()**: 遍历数组或对象,执行回调函数。 3. **jQuery插件开发** - **命名空间**: 为了防止命名冲突,通常使用`$.fn....
05 Python 错误更正:布尔值可以作为字典的key 06 Python 今日内容整理 第13章 第13章共1课 第14章 01 数据类型和变量总结 02 集合定义和基本操作方法 03 集合关系运算交,差,并集 04 集合的其他内置方法 05 ...