累加 map java_Java Map key 不存在时设置初始值,存在时累加计算值的设计方案

在 Java 中,使用 Map 进行键值对累加时,可以借助 Java 8 的 getOrDefault 方法来处理。当 key 不存在时,设置初始值为0,如果存在则将值累加。通过示例代码展示了如何在 Map 中累加数值并保持键值对的正确计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 java 中使用 Map 时,针对 key 进行数值的累计运算,需要指定键不存在时,设置初始值,特定 key 存在时,对已有键值进行累加。

参考方案

java 8 中,Map 中增加了 getOrDefault 方法,该方法在指定 key 不存在时,可以指定默认的返回值,利用该方法示例代码如下:

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

public class MapDemo {

public static void main(String[] args) {

Map map = new HashMap<>();

List kvList = new ArrayList<>();

kvList.add(new KV("knowledge", 16f));

kvList.add(new KV("dict", 8f));

kvList.add(new KV("knowledge", 2f));

incrementMapValue(map, kvList);

System.out.println(map);

}

// map 指定 key 累加值方法

public static void incrementMapValue(Map map, List kvList) {

for (KV kv : kvList) {

map.put(kv.getKey(), map.getOrDefault(kv.getKey(), 0f) + kv.getValue());

}

}

static class KV {

private String key;

private Float value;

public KV(String key, Float value) {

this.key = key;

this.value = value;

}

public String getKey() {

return key;

}

public void setKey(String key) {

this.key = key;

}

public Float getValue() {

return value;

}

public void setValue(Float value) {

this.value = value;

}

}

}

输出结果如下:

{dict=8.0, knowledge=18.0}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值