北京做网站个人,wordpress 5编辑器使用教程,外贸展示型网站建设,家装公司网站建设方案前言#xff1a;什么是 LRU 呢#xff0c;单词全拼 Least Recently Used#xff0c;意思是最久未使用。这个算法是做缓存用的#xff0c;比如#xff0c;你要缓存一组数据#xff0c;你要划分缓存块出来#xff0c;因为不可能每个数据都做缓存#xff0c;那么划出来的这…前言什么是 LRU 呢单词全拼 Least Recently Used意思是最久未使用。这个算法是做缓存用的比如你要缓存一组数据你要划分缓存块出来因为不可能每个数据都做缓存那么划出来的这个缓存块就要遵守 LRU 缓存算法。比如你画出来了 4 个缓存块你已经存了 4 个缓存数据那么新的数据还要缓存进去就需要删除之前的一个缓存那么删除哪个呢就是最久未使用的那个数据算法实现如下定义一个缓存内用 map 来装键值对。# 代表的私有属性。has 判断是否有缓存数据get 获取数据后数据要变成最新使用的数据要删的时候不会删它set 存入新数据然后删除最久未使用的数据。
class LRUCache {#map;#length;constructor(len) {this.#map new Map();this.#length len;}has(key) {return this.#map.has(key);}get(key) {if (this.has(key)) return null;const value this.#map.get(key);this.#map.delete(key);this.#map.set(key, value);return value;}set(key, value) {if (this.has(key)) {this.#map.delete(key);}this.#map.set(key, value);if (this.#map.size this.#length) {this.#map.delete(this.#map.keys().next().value);}}
}