`

合并List<Map<String,String>>中的重复数据并对某个字段做累加

    博客分类:
  • java
阅读更多
package demo1;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class mergeData {
	public static void main(String[] args) {
		List<Map<String, String>> l = new ArrayList<Map<String, String>>();
		Map<String, String> oneMap = new HashMap<String, String>();
		oneMap.put("gsId", "8000");
		oneMap.put("gsName", "总部集中处理中心");
		oneMap.put("type", "D");
		oneMap.put("yybcount", "3");
		l.add(oneMap);
		Map<String, String> twoMap = new HashMap<String, String>();
		twoMap.put("gsId", "8008");
		twoMap.put("gsName", "南京长江路证券营业部");
		twoMap.put("type", "H");
		twoMap.put("yybcount", "14");
		l.add(twoMap);

		List<Map<String, String>> twoList = new ArrayList<Map<String, String>>();
		Map<String, String> oneMap1 = new HashMap<String, String>();
		oneMap1.put("gsId", "8008");
		oneMap1.put("gsName", "南京长江路证券营业部");
		oneMap1.put("type", "H");
		oneMap1.put("yybcount", "5");
		twoList.add(oneMap1);
		Map<String, String> twoMap2 = new HashMap<String, String>();
		twoMap2.put("gsId", "8008");
		twoMap2.put("gsName", "南京止马营证券营业部");
		twoMap2.put("type", "F");
		twoMap2.put("yybcount", "9");
		twoList.add(twoMap2);

		l.addAll(twoList);

		List<Map<String, String>> countList = new ArrayList<Map<String, String>>();
		for (int i = 0; i < l.size(); i++) {
			String gsId = l.get(i).get("gsId");
			String type = l.get(i).get("type");
			int flag = 0;// 0为新增数据,1为增加count
			for (int j = 0; j < countList.size(); j++) {
				String gsId_ = countList.get(j).get("gsId");
				String type_ = countList.get(j).get("type");

				if (gsId.equals(gsId_) && type.equals(type_)) {
					int sum = Integer.parseInt(l.get(i).get("yybcount"))
							+ Integer.parseInt(countList.get(j).get("yybcount"));
					countList.get(j).put("yybcount", sum + "");
					flag = 1;
					continue;
				}
			}
			if (flag == 0) {
				countList.add(l.get(i));
			}
		}
		for (Map<String, String> map : countList) {
			System.out.println(map);
		}
	}
}

返回结果:

{gsName=总部集中处理中心, yybcount=3, type=D, gsId=8000}
{gsName=南京长江路证券营业部, yybcount=19, type=H, gsId=8008}
{gsName=南京止马营证券营业部, yybcount=9, type=F, gsId=8008}

分享到:
评论

相关推荐

    List<Map<String, List>> data保存到SharedPreference和读取

    在上述代码中,`saveListMapsToSharedPreferences`方法将`List&lt;Map&lt;String, List&lt;String&gt;&gt;&gt;`转换为JSON字符串并保存到SharedPreference,`readListMapsFromSharedPreferences`则读取JSON字符串并反序列化回原数据...

    List<Map>转化为List工具类

    一般使用springjdbc、hibernate的sql查询,库获取到的数据都是List&lt;Map&lt;String, Object&gt;&gt;结果集,如果我们要转化为JavaBean,则需要做一系列的map.get(),然后obj.set()。 此工程中就是解决List&lt;Map&lt;String, Object&gt;...

    List转换为List

    本知识点重点讲解将List&lt;Bean&gt;转换为List&lt;Map&gt;的过程,这在进行Web开发、数据处理以及与前端交互等场景中非常常见。同时,也会涉及List&lt;Object&gt;转换为List&lt;Object&gt;及list转换为JsonArray的内容。 ### List&lt;Bean&gt;...

    FreeMarker 遍历list

    在FreeMarker中,遍历`List&lt;Map&lt;String&gt;&gt;`是常见的操作,尤其在处理从后端传来的复杂数据结构时。这篇博客链接虽然无法直接访问,但从标题来看,我们可以推测其内容可能涉及如何在FreeMarker模板中遍历一个包含Map...

    List&lt;map&gt;多字段组合排序

    List&lt;map&gt;,List&lt;Map&lt;String, Object&gt;&gt;,多字段组合排序。提供一个简易的思路,如果需要进行参考。

    ResultSet 转为listmap

    2. 便于数据展示:List&lt;Map&gt; 可以方便地将查询结果集展示在 GUI 组件中,如 JTable、DataGridView 等。 在实际开发中,我们可以根据需要对 ResultSetToList 方法进行修改和扩展,以满足不同的业务需求。 知识点: ...

    json字符串转成 Map/List

    List&lt;Map&lt;String, Object&gt;&gt; list = new ArrayList&lt;&gt;(); for (int i = 0; i &lt; jsonArray.length(); i++) { JSONObject obj = jsonArray.getJSONObject(i); Map&lt;String, Object&gt; itemMap = new HashMap&lt;&gt;(); for ...

    soap-builder.jar,工具包,可解析wsdl

    List&lt;Map&lt;String,List&lt;Map&lt;String,String&gt;&gt;&gt;&gt; bindList = new ArrayList&lt;Map&lt;String,List&lt;Map&lt;String,String&gt;&gt;&gt;&gt;(); for(int i=0;i&lt;qNameList.size();i++){ String localPart = qNameList.get(i).getLocalPart();...

    android 用json+zip把list<map<String,object>>类型大量数据创建为二维码图片,并解码

    android 用json+zip把list&lt;map&lt;String,object&gt;&gt;类型大量数据创建为二维码图片,并且用zip算法压缩,提高二维码图片的数据存储量,压缩包中有两个工程一个是创建二维码图片的工程,一个是解析二维码图片数据的工程

    Lambda-List的转化操作

    接下来我们就通过几个基本常用的及非典型的案例来说明Lambda表达式的使用 List转换为List&lt;T.ID&gt; List转Map List 转化为 Map&lt;T.ID,T.NAME&gt; ...List&lt;Map&lt;String,Object&gt;&gt;转Map&lt;String,Map&lt;String,Object&gt;

    Unity3d读写格式为类型的xml

    这里的`List&lt;KeyValuePair&lt;string, string&gt;&gt; data`表示待写入的键值对数据列表。 除了`XDocument`,Unity3D还支持使用`XmlSerializer`进行序列化和反序列化,这在处理自定义对象时特别有用。然而,对于简单的键值对...

    Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并

    Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并 Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并

    java 读取csv 并转为Map<String,Object>

    通过引用【opevcsv】依赖,逐行读取数据 并转为Map&lt;String,Object&gt;格式,后续可以通过BeanUtil.MaptoBean()方法将map转为你需要的bean对象; csv文件必须带表头,bean对象命名符合驼峰格式; 通过此方法可以快速的将...

    map/list集合转化成xml字符串 xml字符串转化成map/list集合

    Map&lt;String, String&gt; result = new HashMap&lt;&gt;(); NodeList nodeList = root.getChildNodes(); for (int i = 0; i &lt; nodeList.getLength(); i++) { Node node = nodeList.item(i); if (node.getNodeType() == ...

    java字符串与集合互相转换,字符串转List,Map,List转String,String转List源码

    List集合转换成String,String转List,Map转String,String转Map等 集合与字符串相互转换,可以自己扩展源码,带有注释

    在Java 8中将List转换为Map对象方法

    在Java 8中,将List转换为Map对象是一种非常实用的技术,特别是在处理大规模数据时非常有用。本文将详细介绍在Java 8中将List转换为Map对象的方法,并提供了多种实现方式。 首先,我们需要明确Map的key是什么?在这...

    spring,cxf,restful发布webservice传递List,Map,List&lt;Map&gt;

    1. **定义数据模型**:创建对应的Java类,如`ComplexObject`,其中包含List&lt;Map&lt;String, String&gt;&gt;字段。 2. **创建服务接口**:定义一个服务接口,声明接受List&lt;Map&lt;String, String&gt;&gt;参数的方法。 3. **实现服务逻辑...

    Gson解析(List和Map)格式json数据 - CSDN博客1

    List&lt;City&gt; cities = gson.fromJson(str, type); // 输出城市名称 for (City city : cities) { System.out.println(city.name); } } ``` 在这个例子中,我们定义了一个`City`类来表示JSON对象中的一个元素。...

    嵌套Map或者List获取key、value值

    List&lt;Map&lt;String, String&gt;&gt; userList = new ArrayList&lt;&gt;(); for (Map&lt;String, String&gt; user : userList) { String userName = user.get("name"); String userEmail = user.get("email"); // 处理每个用户的姓名和...

    全国省市区的plist文件

    &lt;string&gt;东城区&lt;/string&gt; &lt;string&gt;西城区&lt;/string&gt; &lt;string&gt;朝阳区&lt;/string&gt; &lt;string&gt;丰台区&lt;/string&gt; &lt;string&gt;石景山区&lt;/string&gt; &lt;string&gt;海淀区&lt;/string&gt; &lt;string&gt;门头沟区&lt;/string&gt; ...

Global site tag (gtag.js) - Google Analytics