關(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值相同問題
某些場景需要一個key值下面對應(yīng)多個值,但是map的一個key值只對應(yīng)一個value值,由于hashmap相同的key值,第二個put進去會覆蓋第一個的值
為了解決這一問題:所以用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一個新的map,add到map的list里面。思路大概是這樣的。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring RedirectAttributes參數(shù)跳轉(zhuǎn)代碼實例
這篇文章主要介紹了Spring RedirectAttributes參數(shù)跳轉(zhuǎn)代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04
SpringBoot 監(jiān)聽Redis鍵過期事件(過期監(jiān)聽)
Redis鍵過期事件是SpringBoot中常用的緩存失效通知方式,通過配置可以監(jiān)聽特定鍵的過期事件,具有一定的參考價值,感興趣的可以了解一下2024-12-12
Java中的深拷貝(深復(fù)制)和淺拷貝(淺復(fù)制)介紹
這篇文章主要介紹了Java中的深拷貝(深復(fù)制)和淺拷貝(淺復(fù)制)介紹,需要的朋友可以參考下2015-03-03

