1110-LruCache詳解一

</br>

什么是LruCache

</br>
LruCache,Least Recently Used,“最近最少使用緩存”,是一種基于Lru算法實現(xiàn)的緩存機制。

它自Android3.1開始出現(xiàn),通過support-v4兼容包可以兼容早期的Android版本。因此,如果需要兼容3.1以前的版本,建議使用v4兼容包中的LruCache,而不要直接使用Android3.1提供的LruCache。

</br>

LruCache是怎樣工作的

</br>
Lru算法的原理:如果當(dāng)前數(shù)據(jù)的量大于設(shè)定的最大值,則把最近最少使用的數(shù)據(jù)移除掉。這樣就只保留最頻繁使用的數(shù)據(jù)。

LruCache是一個泛型類,它內(nèi)部采用一個LinkedHashMap以強引用的方法存儲外界的緩存對象,其提供了get和put方法來完成緩存的獲取和添加操作。當(dāng)緩存滿時,LruCache會移除較早使用的緩存對象,然后再添加新的緩存對象。

使用LinkedHashMap有兩大好處:

一是它本身已經(jīng)實現(xiàn)了按照訪問順序的存儲。也就是說,最近讀取的會放在最前面,最最不常讀取的會放在最后(當(dāng)然,它也可以實現(xiàn)按照插入順序存儲)。

第二,LinkedHashMap 本身有一個方法用于判斷是否需要移除最不常讀取的數(shù),但是,原始方法默認(rèn)不需要移除(這時,LinkedHashMap 相當(dāng)于一個linkedlist),所以,我們需要 override 這樣一個方法,使得當(dāng)緩存里存放的數(shù)據(jù)個數(shù)超過規(guī)定個數(shù)后,就把最不常用的移除掉。

</br>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容