java8 使用Map中的computeIfAbsent方法构建本地缓存,提高程序效率
2023-09-11 14:16:24 时间
1. 概念及使用介绍
在JAVA8的Map接口中,增加了一个方法computeIfAbsent,此方法签名如下:
public V computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction)
Map接口的实现类如HashMap,ConcurrentHashMap,HashTable等继承了此方法,通过此方法可以构建JAVA本地缓存,降低程序的计算量,程序的复杂度,使代码简洁,易懂。
此方法首先判断缓存MAP中是否存在指定key的值,如果不存在,会自动调用mappingFunction(key)计算key的value,然后将key = value放入到缓存Map,java8会使用thread-safe的方式从cache中存取记录。
如果mappingFunction(key)返回的值为null或抛出异常,则不会有记录存入map
2. 代码样例
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.co
相关文章
- 【方法2】删除Map中Value重复的记录,并且只保留Key最小的那条记录
- python用reduce和map把字符串转为数字的方法
- [Immutable.js] Differences between the Immutable.js Map() and List()
- Java中如何遍历Map对象的4种方法
- Java遍历Map键、值。获取Map大小的方法
- python用reduce和map把字符串转为数字的方法
- [Functional Programming Monad] Map And Evaluate State With A Stateful Monad
- [Ramda] Declaratively Map Data Transformations to Object Properties Using Ramda evolve
- js es6数组常用方法:forEach map filter find every
- java中List、Array、Map、Set等集合相互转换的最佳方法
- js遍历对象数组map方法
- Vue中常用的数组方法总结:如.filter()、.map()、.forEach()、.find()、.findIndex()、.some()、.every()
- ML之ME:分类预测问题中评价指标(AP/mAP)的简介、使用方法、代码实现、案例应用之详细攻略
- 【解决if else】还在用策略模式解决 if-else?Map+函数式接口方法才是YYDS!
- Python 最频繁使用的4个函数:lambda、 map、filter 和 reduce
- Java8 stream().map()将对象转换为其他对象
- Java中如何遍历Map对象的4种方法
- STL源代码剖析 容器 stl_map.h
- 清空map的方法
- 【Groovy】map 集合 ( map 集合遍历 | 使用 map 集合的 find 方法遍历 map 集合 | 代码示例 )
- java中集合类中Collection接口中的Map接口的常用方法熟悉
- 关联查询之map的延伸使用方法
- 论ORBSLAM_with_pointcloud_map段错误(核心已转储)的另一种解决方法
- golang_并发安全: slice和map并发不安全及解决方法
- Pandas中函数map,apply,applymap的相关应用操作