iOS 常见内存缓存方案有NSCache ,可以设置最大缓存数量,一旦超过缓存数量,就会将里边的数据进行覆盖操作,确保缓存数据不超过最大数量.
基于这样的设计 小编今天动手写了一个LRUCache 工具,用来缓存数据,内部实现了H ashMap 和 LinkList 进行数据的查找,插入,删除等操作.
实现原理如下
1 每次查找元素时 如果找到了该元素 就把该元素移动到链表头部
2 当链表存储数量超过缓存最大数时 , 会将链表末端元素移除 并将新的元素插入到链表头部
头文件声明如下
核心实现代码如下
测试用例