91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java8中Stream list to Map key重復value合并到Collectio的示例分析

發布時間:2021-06-10 13:51:04 來源:億速云 閱讀:2806 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關java8中Stream list to Map key重復value合并到Collectio的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

java8 Stream list to Map key 重復 value合并到Collectio

關于把list轉換成key value的map有很多博客上都有實現,這里是一個把value放入到集合中去

List<String> list = Lists.newArrayList("1", "2", "3", "1");
        Map<String, List<String>> map = list.stream().collect(Collectors.toMap(key -> key,
                value -> Lists.newArrayList(value),
                (List<String> newValueList, List<String> oldValueList) -> {
                    oldValueList.addAll(newValueList);
                    return oldValueList;
                }));
        System.out.println(JSON.toJSONString(map));

類似的,你的list泛型可以是一個bean,取bean的屬性當key或者value,轉換成一個集合

結果:

{"1":["1","1"],"2":["2"],"3":["3"]}

list中Map合并重復數據(map中key相等的value值相加)

public static void main(String[] args) {
		List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
		Map<String, Object> map1 = new HashMap<String, Object>();
		map1.put("id", 1);
		map1.put("value", 2);
		list.add(map1);
		
		Map<String, Object> map2 = new HashMap<String, Object>();
		map2.put("id", 1);
		map2.put("value", 5);
		list.add(map2);
		
		Map<String, Object> map3 = new HashMap<String, Object>();
		map3.put("id", 2);
		map3.put("value", 5);
		list.add(map3);
		
		Map<String, Object> map4 = new HashMap<String, Object>();
		map4.put("id", 2);
		map4.put("value", 4);
		list.add(map4);
		
		Map<String, Object> map5 = new HashMap<String, Object>();
		map5.put("id", 1);
		map5.put("value", 4);
		list.add(map5);
		
		//id相等value相加(合并id相同數據)
		System.out.println("原始數據:"+list);
		
		//方法一
		Map<String, Object> result1 = new HashMap<String, Object>();
		for(Map<String, Object> map : list){
			String id = map.get("id").toString();
			Long value = Long.parseLong(map.get("value").toString());
			if(result1.containsKey(id)){
				Long temp = Long.parseLong(result1.get(id).toString());
				value += temp;
			}
			result1.put(id, value);
		}
		System.out.println("合并后的數據:"+result1);
		
		//方法二
		Map<String, Map<String, Object>> result2 = new HashMap<String, Map<String,Object>>();
		for(Map<String, Object> map : list){
			String id = map.get("id").toString();
			Long value = Long.parseLong(map.get("value").toString());
			if(result2.containsKey(id)){
				Long temp = Long.parseLong(result2.get(id).get("value").toString());
				value += temp;
				result2.get(id).put("value", value);
				continue;
			}
			result2.put(id, map);
		}
		System.out.println("合并后的數據2:"+result2);
 
	}

感謝各位的閱讀!關于“java8中Stream list to Map key重復value合并到Collectio的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

叶城县| 芒康县| 中方县| 大田县| 门头沟区| 礼泉县| 荃湾区| 旅游| 井陉县| 隆尧县| 孟村| 布拖县| 吉安县| 阜城县| 隆德县| 阳信县| 和田县| 克拉玛依市| 马公市| 图们市| 巨鹿县| 姜堰市| 剑河县| 太原市| 景德镇市| 亚东县| 杭锦后旗| 苏尼特左旗| 武穴市| 秭归县| 临高县| 深水埗区| 广河县| 巴塘县| 韶山市| 吴旗县| 金沙县| 莆田市| 宝坻区| 中卫市| 石狮市|