如何去设计一个 iOS缓存类

iOS 常见内存缓存方案有NSCache ,可以设置最大缓存数量,一旦超过缓存数量,就会将里边的数据进行覆盖操作,确保缓存数据不超过最大数量.
基于这样的设计 小编今天动手写了一个LRUCache 工具,用来缓存数据,内部实现了H ashMap 和 LinkList 进行数据的查找,插入,删除等操作.
实现原理如下

1 每次查找元素时 如果找到了该元素 就把该元素移动到链表头部
2 当链表存储数量超过缓存最大数时 , 会将链表末端元素移除 并将新的元素插入到链表头部

image.png

头文件声明如下


image.png

核心实现代码如下


image.png

测试用例


image.png
image.png

源码下载 https://github.com/ZhaoBingDong/LRUCache.git

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容