最近在做统计钱的计算时遇到的一个需求,需要将一个大类别下的每一种钱进行特定的运算然后获得六年的钱,最后将这些钱按照年份进行汇总,获得总得大类型的六年的钱,在这个过程中采用了这种方法,每次算得钱放在map中,然后将map进行合并,写篇随笔mark下。

public class CombineMap {
public static Map<Integer,Integer> addTo(Map<Integer,Integer> target, HashMap<Integer,Integer>plus) {
Object[] os = plus.keySet().toArray();
Integer key;
for (int i=0; i<os.length; i++) {
key = (Integer)os[i];
if (target.containsKey(key))
target.put(key, target.get(key) + plus.get(key));
else
target.put(key, plus.get(key));
}
return target;
}
public static void main(String[] args) {
// 获得arm,body,head,leg,wst
// ......
Map<Integer,BigDecimal> all = new TreeMap<Integer,BigDecimal>();
all.put(2016, new BigDecimal(10));
all.put(2017, new BigDecimal(10));
all.put(2018, new BigDecimal(10));
all.put(2019, new BigDecimal(10));
all.put(2020, new BigDecimal(10));
      Map<Integer,BigDecimal> plus = new HashMap<Integer,BigDecimal>();
plus.put(2016, new BigDecimal(1));
plus.put(2017, new BigDecimal(2));
plus.put(2018, new BigDecimal(3));
plus.put(2019, new BigDecimal(4));
plus.put(2020, new BigDecimal(5));
      all = addTo(all, plus);
all = addTo(all, plus);
List<BigDecimal> tepList;
tepList = new ArrayList<BigDecimal>();
for (Object s : all.keySet()) {
System.out.print("year : " + s);
System.out.println(" values : " + all.get(s).doubleValue());
tepList.add(all.get(s));
}
}
}

map合并,相同键对应的值相加的更多相关文章

  1. scala 两个map合并,key相同时value相加/相减都可

    scala 两个map合并,key相同时value相加 1.map自带的合并操作 2.map函数 2.1示例 2.2合并两个map 3.用foldLeft 3.1 语法 3.2 合并两个map 1.m ...

  2. Python两个字典键同值相加的几种方法

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/Jerry_1126/article/de ...

  3. (转载)php 合并数组中的数据,如果键值相等其值相加

    (转载)http://hi.baidu.com/syxrrrr/item/7dfb2387343ce0874414cfdd /* * 合并数据,如果键值相等其值相加 * @param array $d ...

  4. LeetCode 677. Map Sum Pairs 键值映射(C++/Java)

    题目: Implement a MapSum class with insert, and sum methods. For the method insert, you'll be given a ...

  5. js数组去重,id相同对某值相加合并

    js数组去重,id相同对某值相加合并 案例1: 假设需要处理的数组结构. let arr =[ {id:'1', value:10}, {id:'1', value:20}, {id:'2', val ...

  6. PHP合并2个数字键数组的值

    先要了解一个基础知识点:PHP数组合并+与array_merge的区别分析 & 对多个数组合并去重技巧 <?php /** * PHP合并2个数字键数组的值 * * @param arr ...

  7. Map:containsKey、containsValue 获取Map集合的键值的 值

    get(Object key) 返回与指定键关联的值: containsKey(Object key) 如果Map包含指定键的隐射,则返回true: containsValue(Object valu ...

  8. Java: Map里面的键和值可以为空吗?

    在Java中,Map里面的键和值可以为空吗?我们先来看一个例子: private static void TestHashMap() { // TODO Auto-generated method s ...

  9. 【Java必修课】通过Value获取Map中的键值Key的四种方法

    1 简介 我们都知道Map是存放键值对<Key,Value>的容器,知道了Key值,使用方法Map.get(key)能快速获取Value值.然而,有的时候我们需要反过来获取,知道Value ...

随机推荐

  1. python独立环境——virtualenv

    安装: pip3 intall virtualenv   创建独立运行环境: 1. 进入项目文件夹根目录 2. 创建环境 Mac:myproject michael$ virtualenv --no- ...

  2. 2-nginx 安装

    1, nginx简介: •Nginx("engine x") 是一个高性能的HTTP 和反向代理服务器,也是一个IMAP/POP3/SMTP 代理服务器.•第一个公开版本0.1.0 ...

  3. 169.254地址无网关信息 ----- 解决方案 启动DHCP服务

    169.254.X.X是Windows操作系统在DHCP信息租用失败时自动给客户机分配的IP地址,.看到地址的时候没有网关. 解决方案   启动DHCP服务 1. 首先确认 路由器  DHCP 服务已 ...

  4. Hadoop提交作业流程

    一 .需要知道的内容 1.ResourceManager ------>yarn的老大 2.NodeManager        ------>yarn的小弟 3.ResourceMana ...

  5. orcle查询记录的每天的第一条

    select * from (      select elec,time,Row_Number() OVER (partition by trunc(TIME) order by time) ran ...

  6. sql多行合并成一行用逗号隔开,多表联合查询中子查询取名可重复

    简单版的 SELECT a.CreateBy,Name =stuff((select ','+Name FROM SG_Client WHERE CreateBy = a.CreateBy for x ...

  7. 如何移动 nuget 缓存文件夹

    本文告诉大家如何移动 nuget 缓存文件夹. 因为 nuget 文件夹一般比较大,现在我的 nuget 文件夹有 10 G,默认的 nuget 文件夹是在C盘,所以需要移动他. 可以使用下面的代码查 ...

  8. Sql-Server触发器,根据条件匹配另一个表中的字段

    USE [CDM] GO /****** Object: Trigger [dbo].[UpdateAkisFlight] Script Date: 2018/6/14 16:43:29 ****** ...

  9. gdb中run出现的Missing separate debuginfos, use: debuginfo-install XXX

    问题: Missing separate debuginfos, use: debuginfo-install glib 解决方法: 1.将/etc/yum.repo.d/CentOS-Debugin ...

  10. git fork后提交pull request到原作者,别人的pull request我们要怎样merge融合

    首先要记住,pull request 不是随便提交的,这是建立在你对原作者的项目有fork,并对项目中的代码有修改,并提交到了你的GitHub上,才能进行下面的操作. 若不知怎样fork项目,请看我的 ...