除了基于链表的实现思路,实际上还可以用数组来实现 LRU 缓存。
大致的思路是:
我们创建一个指定大小的数组
方式一:前位置表示最新访问记录,后位置表示需要清理的记录
当有一条新的记录进来
1.首先遍历数组,看该记录是否已经缓存了
2 如果已经缓存,且位置为K,则将该记录用一个临时变量记住,将k-1....0都往后挪一个位置,再将该临时变量插入0位置。
3,如果该记录没有缓存,则将0到k-1都往后挪一个位置,再将该临时变量插入0位置。
除了基于链表的实现思路,实际上还可以用数组来实现 LRU 缓存。
大致的思路是:
我们创建一个指定大小的数组
方式一:前位置表示最新访问记录,后位置表示需要清理的记录
当有一条新的记录进来
1.首先遍历数组,看该记录是否已经缓存了
2 如果已经缓存,且位置为K,则将该记录用一个临时变量记住,将k-1....0都往后挪一个位置,再将该临时变量插入0位置。
3,如果该记录没有缓存,则将0到k-1都往后挪一个位置,再将该临时变量插入0位置。