LRUCache实现方案
双向链表 + HashMap
1. 双向链表:按照最后访问时间排序。
2. HashMap:建立链表中元素的索引,方便快速寻找链表中的节点。
插入:
1. 插入HashMap
2. 放入链表尾部
访问:
1. 使用HashMap快速索引到链表中的节点。
2. 节点从链表的位置删除,
3. 修改节点的最后访问时间。
4. 将节点放入链表的尾部。
Cache容量满:
当链表中的元素个数等于Cache容量时,
若再加入新的元素,将链表中的队首元素移除,同时将它也从HashMap中移除。