关于HashMap相同key累加value的问题
更新时间:2022年05月06日 09:51:42 作者:ample笔记
这篇文章主要介绍了关于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); } }
得到的结果是{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里面。思路大概是这样的。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
解决idea 通过build project 手动触发热部署失败的问题
在debug运行项目的过程中,并且保证(不添加方法,不修改方法名)一定的规则的情况下,可以通过build project 来手动热部署项目,本文给大家介绍解决idea 通过build project 手动触发热部署失败的问题,感兴趣的朋友一起看看吧2023-12-12Java中SimpleDateFormat日期格式转换详解及代码示例
这篇文章主要介绍了Java中SimpleDateFormat日期格式转换详解及代码示例,具有一定借鉴价值,需要的朋友可以参考下。2017-12-12
最新评论