总结一下:根据题目的要求,LRU Cache具备的操作:
1)set(key,value):如果key在hashmap中存在,则先重置对应的value值,然后获取对应的节点cur,将cur节点从链表删除,并移动到链表的头部;若果key在hashmap不存在,则新建一个节点,并将节点放到链表的头部 。当Cache存满的时候,将链表最后一个节点删除即可 。
2)get(key):如果key在hashmap中存在,则把对应的节点放到链表头部,并返回对应的value值;如果不存在,则返回-1 。
【缓存算法FIFO、LFU、LRU】
推荐阅读
- 每个程序员都应该知晓的核心搜索算法
- JAVA算法合集:冒泡+插入+快速+希尔+归并+桶+基数+剪枝+回溯算法
- 最受欢迎的算法之一:反向传播训练
- Windows 10务必删除这五大缓存,提升电脑速度非常显著
- 电脑越用越卡?看看高手怎么清理缓存,学会后瞬间腾出20G
- 什么是数据库的“缓存池”?
- ceph缓存池
- 系统架构师、算法工程师、人工智能工程师需要学多少数学?
- Zookeeper的选举算法和脑裂问题深度讲解
- 你应该知道的常用排序算法之快速排序
