一、概念及使用介紹
在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
二 代碼樣例
三,程式運作結果