天天看點

java8 使用Map中的computeIfAbsent方法建構本地緩存,提高程式效率

一、概念及使用介紹 

     在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

二 代碼樣例

三,程式運作結果