关于HashMap相同key累加value的问题
短信预约 -IT技能 免费直播动态提醒
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);
}
}
得到的结果是{k=3}。
scala语言结果同上。
而脚本语言perl可以直接累加,脚本如下
#!/usr/bin/perl
use strict;
use Data::Dumper;
my %map;
$map{"k"}+=1;
$map{"k"}+=2;
$map{"k"}+=3;
print Dumper(\%map);
得到的结果是
$VAR1 = {
‘k’ => 6
};
HashMap解决key值相同问题
某些场景需要一个key值下面对应多个值,但是map的一个key值只对应一个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里面。思路大概是这样的。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341