1. 程式人生 > >Android中的LruCache的原理和使用

Android中的LruCache的原理和使用

# Android中的LruCache的原理和使用 LruCache,雖然很多文章都把LRU翻譯成“最近最少使用”快取策略,但Android中的LruCache真的如此嗎? 答案是No,它只做到了控制“最近使用”! ## 原理 ### 資料結構 LruCache採用LinkedHashMap作為儲存的資料結構,那麼為什麼是LinkedHashMap? #### LinkedHashMap特性簡介 - LinkedHashMap基於HashMap,具有HashMap高效查詢、自動擴容等特性 - 在HashMap基礎上,增加了一個雙向連結串列儲存K-V對、實現了自己的遍歷器LinkedHashIterator,預設情況下可以做到根據資料插入順序有序地遍歷 - 提供過載構造方法供外部控制accessOrder,以實現根據訪問順序有序地遍歷 ### 初始化 ``` public LruCache(int maxSize) { if (maxSize <= 0) { throw new IllegalArgumentException("maxSize <= 0"); } this.maxSize = maxSize; this.map = new Linke