Java Map.computeIfAbsent() 方法详解:添加键值对的利器
Map.computeIfAbsent() 方法是 Java 8 中的一个强大工具,它允许您在 Map 中根据给定键的条件来计算新的值并添加键值对。该方法的语法如下:\nV computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction)\n\n参数解释:\n- key: 要检查的键。\n- mappingFunction: 计算新值的函数。\n\n工作原理:\n1. 如果给定键 key 在 Map 中不存在,或者映射到 null 值,则调用 mappingFunction 函数计算新值。\n2. 如果计算出的新值不为 null,则将其与键 key 关联起来,并将其添加到 Map 中。\n3. 如果计算出的新值为 null,则不会将其添加到 Map 中,并返回 null。\n\n示例代码:\njava\nMap<String, Integer> map = new HashMap<>();\nmap.put("A", 1);\nmap.put("B", null);\nmap.put("C", 3);\n\nInteger value1 = map.computeIfAbsent("A", k -> 10); // value1 = 1,键 "A" 已存在,不进行计算,返回原来的值 1\nInteger value2 = map.computeIfAbsent("B", k -> 20); // value2 = null,键 "B" 映射到 null 值,计算出新值 20,但不放入 Map 中\nInteger value3 = map.computeIfAbsent("D", k -> 30); // value3 = 30,键 "D" 不存在,计算出新值 30,并将键值对放入 Map 中\n\nSystem.out.println(map); // 输出:{A=1, B=null, C=3, D=30}\n\n\n总结:\nMap.computeIfAbsent() 方法为 Map 添加键值对提供了一种高效且安全的机制,尤其适用于需要根据条件动态计算值的场景。通过合理使用该方法,您可以避免重复计算,并确保 Map 中的值始终保持最新状态。
原文地址: https://www.cveoy.top/t/topic/pVTG 著作权归作者所有。请勿转载和采集!