關(guān)于HashMap相同key累加value的問題
HashMap相同key累加value
import java.util.HashMap; import java.util.Map; public class Test { public static void main(String[] args) { Map<String, Long> map = new HashMap<String, Long>(); map.put("k", 1L); map.put("k", 2L); map.put("k", 3L); System.out.println(map); } }
得到的結(jié)果是{k=3}。
scala語言結(jié)果同上。
而腳本語言perl可以直接累加,腳本如下
#!/usr/bin/perl use strict; use Data::Dumper; my %map; $map{"k"}+=1; $map{"k"}+=2; $map{"k"}+=3; print Dumper(\%map);
得到的結(jié)果是
$VAR1 = {
‘k’ => 6
};
HashMap解決key值相同問題
某些場景需要一個(gè)key值下面對(duì)應(yīng)多個(gè)值,但是map的一個(gè)key值只對(duì)應(yīng)一個(gè)value值,由于hashmap相同的key值,第二個(gè)put進(jìn)去會(huì)覆蓋第一個(gè)的值
為了解決這一問題:所以用list存
如下:
List<Map<String, List<RecommendationListBO>>> hashList = new ArrayList<>(); Iterator<Map.Entry<String, List<RecommendationListBO>>> iterator = recommendationHashMap.entrySet().iterator(); Map.Entry<String, List<RecommendationListBO>> entry; while (iterator.hasNext()) { ? ? entry = iterator.next(); ? ? // 往newMap中放入新的Entry ? ? HashMap<String, List<RecommendationListBO>> newMap = new LinkedHashMap<>(); ? ? newMap.put(entry.getKey().split(",")[0], entry.getValue()); ? ? hashList.add(newMap); }
每次new一個(gè)新的map,add到map的list里面。思路大概是這樣的。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
如何在Spring WebFlux的任何地方獲取Request對(duì)象
這篇文章主要介紹了如何在Spring WebFlux的任何地方獲取Request對(duì)象,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下2021-01-01Java 實(shí)現(xiàn)簡單Socket 通信的示例
這篇文章主要介紹了Java 實(shí)現(xiàn)簡單Socket 通信的示例,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下2021-03-03Java8中 LocalDate和java.sql.Date的相互轉(zhuǎn)換操作
這篇文章主要介紹了Java8中 LocalDate和java.sql.Date的相互轉(zhuǎn)換操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12Spring中過濾器(Filter)和攔截器(Interceptor)的區(qū)別和聯(lián)系解析
在我們?nèi)粘5拈_發(fā)中,我們經(jīng)常會(huì)用到Filter和Interceptor,這篇文章主要介紹了Spring中過濾器(Filter)和攔截器(Interceptor)的區(qū)別和聯(lián)系?,需要的朋友可以參考下2022-10-10Java實(shí)現(xiàn)單機(jī)版五子棋游戲的示例代碼
五子棋是世界智力運(yùn)動(dòng)會(huì)競技項(xiàng)目之一,是一種兩人對(duì)弈的純策略型棋類游戲,是世界智力運(yùn)動(dòng)會(huì)競技項(xiàng)目之一。本文將用java語言實(shí)現(xiàn)單機(jī)版五子棋游戲,感興趣的可以了解一下2022-09-09SpringMVC中@RequestMapping注解用法實(shí)例
通過@RequestMapping注解可以定義不同的處理器映射規(guī)則,下面這篇文章主要給大家介紹了關(guān)于SpringMVC中@RequestMapping注解用法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06