Java8的Map特性:putIfAbsent用法

【福利资源】

【编程电子书大全】https://pan.baidu.com/s/1yhPJ9LmS_z5TdgIgxs9NvQ?pwd=yyds > 提取码: yyds

在处理 Map 的时候,如果希望在键不存在时插入值,而在键已经存在时跳过插入,可以使用 Java 8 引入的 putIfAbsent 方法。这是一个非常方便的方法,它可以避免不必要的检查和条件判断。

使用 putIfAbsent 方法

putIfAbsent 方法在键不存在时才会将指定的值插入到 Map 中。如果键已经存在,则不会做任何操作。

示例代码:

import java.util.HashMap;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        
        map.put("key1", "value1");
        
        // 试图插入一个新键值对
        map.putIfAbsent("key2", "value2");
        // 尝试插入一个已存在的键
        map.putIfAbsent("key1", "newValue");

        System.out.println(map); // 输出: {key1=value1, key2=value2}
    }
}

在上面的示例中,putIfAbsent 方法在键 "key2" 不存在时插入了 "value2",但在键 "key1" 已经存在时没有插入 "newValue"

传统方式(不推荐)

在没有 putIfAbsent 方法之前,你可能会这样做:

if (!map.containsKey("key")) {
    map.put("key", "value");
}

虽然这段代码也能达到相同的效果,但它需要两次访问 Map(一次检查是否包含键,一次插入),而且代码显得冗长。putIfAbsent 方法则更为简洁和高效。

总结

  • 推荐使用putIfAbsent 方法,这是处理这种情况的最佳方式。
  • 示例map.putIfAbsent(key, value);

putIfAbsent 方法不仅简化了代码,而且提高了性能,是处理 Map 键值对插入操作的最佳实践。

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值