Java8的Map特性:putIfAbsent用法
创始人
2024-11-14 21:34:16

【福利资源】

【编程电子书大全】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 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 键值对插入操作的最佳实践。

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...