如何去設(shè)計(jì)一個(gè) iOS緩存類

iOS 常見內(nèi)存緩存方案有NSCache ,可以設(shè)置最大緩存數(shù)量,一旦超過緩存數(shù)量,就會(huì)將里邊的數(shù)據(jù)進(jìn)行覆蓋操作,確保緩存數(shù)據(jù)不超過最大數(shù)量.
基于這樣的設(shè)計(jì) 小編今天動(dòng)手寫了一個(gè)LRUCache 工具,用來緩存數(shù)據(jù),內(nèi)部實(shí)現(xiàn)了H ashMap 和 LinkList 進(jìn)行數(shù)據(jù)的查找,插入,刪除等操作.
實(shí)現(xiàn)原理如下

1 每次查找元素時(shí) 如果找到了該元素 就把該元素移動(dòng)到鏈表頭部
2 當(dāng)鏈表存儲(chǔ)數(shù)量超過緩存最大數(shù)時(shí) , 會(huì)將鏈表末端元素移除 并將新的元素插入到鏈表頭部

image.png

頭文件聲明如下


image.png

核心實(shí)現(xiàn)代碼如下


image.png

測(cè)試用例


image.png
image.png

源碼下載 https://github.com/ZhaoBingDong/LRUCache.git

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容