一、概念及使用介绍
在java8的map接口中,增加了一个方法computeifabsent,此方法签名如下:
map接口的实现类如hashmap,concurrenthashmap,hashtable等继承了此方法,通过此方法可以构建java本地缓存,降低程序的计算量,程序的复杂度,使代码简洁,易懂。
此方法首先判断缓存map中是否存在指定key的值,如果不存在,会自动调用mappingfunction(key)计算key的value,然后将key = value放入到缓存map,java8会使用thread-safe的方式从cache中存取记录。
如果mappingfunction(key)返回的值为null或抛出异常,则不会有记录存入map
二 代码样例
三,程序运行结果