LRUCache实现方案

双向链表 + HashMap

1. 双向链表:按照最后访问时间排序。

2. HashMap:建立链表中元素的索引,方便快速寻找链表中的节点。

插入:

   1. 插入HashMap

   2. 放入链表尾部

访问:

   1. 使用HashMap快速索引到链表中的节点。

   2. 节点从链表的位置删除,

   3. 修改节点的最后访问时间。

   4. 将节点放入链表的尾部。

Cache容量满:

  当链表中的元素个数等于Cache容量时,

      若再加入新的元素,将链表中的队首元素移除,同时将它也从HashMap中移除。

原文地址:https://www.cnblogs.com/lhp2012/p/14153669.html