根据下列博客提供的LRU算法实现,发现结果如下。
https://www.toutiao.com/a6720205805238370829/
LRU全称Least Recently Used,也就是最近最少使用的意思,是一种内存管理算法。
LRU算法基于一种假设:长期不被使用的数据,在未来被用到的几率也不大。因此当数据所占内存达到一定阈值时,我们要移除掉最近最少被使用的数据。
根据结果来看,除了head中没有对pre进行更新,基本完成LRU算法的实现。所以只要对当通过LRU算法删除第一个元素时,将第二个元素设置为head时,也将其pre设为空即可。
通过打印,对比得出,LRU算法能够实现key-value能够按照最后的使用时间来排序。
需要注意的是,这段不是线程安全的,要想做到线程安全,需要加上synchronized修饰符。