Map中put与putIfAbsent区别

本文详细解析了Java中Map数据类型的两种保存方法:put和putIfAbsent的使用场景与区别。put方法会覆盖已存在的键值对,而putIfAbsent仅在键不存在时保存,避免重复。通过实例演示了两者的具体应用。

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

Map中put与putIfAbsent区别

在使用map这种数据类型的时候,你可能会遇到两种情况,

  1. 第一种:不管key存不存在,都要进行保存操作;
  2. 第二种:如果key已存在,则不进行保存;

那么有两个方法可以帮到你:

1. put: 如果key不存在,则保存,如果存在,则覆盖;

V put(K key, V value);

2. putIfAbsent: 如果key不存在,则保存,如果存在,则不进行操作;

default V putIfAbsent(K key, V value) {
        V v = get(key);
        if (v == null) {
            v = put(key, value);
        }

        return v;
    }

示例

    @Test
    public void testPut(){
        Map<String, String> map = new HashMap<>();
        map.put("name", "张三");

        map.forEach( (key,value) -> {
            System.out.println("初始值                : "+ key + ": " + value);
        });

        System.out.println("--------------------------------------------------");

        map.put("name", "王五");
        map.forEach( (key,value) -> {
            System.out.println("put之后               : " + key + ": " + value);
        });

        System.out.println("--------------------------------------------------");

        map.putIfAbsent("name", "赵六");
        map.forEach( (key,value) -> {
            System.out.println("接下来putIfAbsent之后 : " + key + ": " + value);
        });
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值