当前位置: 首页 > news >正文

前端 JS 经典:LRU 缓存算法

前言:什么是 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);}}
}

http://www.lryc.cn/news/361939.html

相关文章:

  • Python3 笔记:ljust、rjust 和 center
  • 恒压频比开环控制系统Matlab/Simulink仿真分析(SPWM控制方式)
  • chatgpt4和文心一言的简单对比
  • React 为什么使用map来渲染列表 而不是其他循环方法
  • 【Axure高保真】tab切换输入表单
  • OrangePi AI Pro 测试体验
  • 【C++】:模板初阶和STL简介
  • 【软件开发】Java学习路线
  • git拉去代码报错“Failed to connect to 127.0.0.1 port 31181: Connection refused“
  • 解读信创产业根基,操作系统发展历程
  • 使用Python爬取华为市场游戏类APP应用
  • 【Oracle】修改已经存在的序列的当前值
  • 记一次netty客户端的开发
  • 策略模式结合Spring使用
  • 基于 RNNs 对 IMDB 电影评论进行情感分类
  • Midjourney绘画参数设置详解
  • 计算机毕业设计 | springboot养老院管理系统 老人社区管理(附源码)
  • 事务与并发控制
  • spring boot 中的异步@Async
  • 【C++/STL】list(常见接口、模拟实现、反向迭代器)
  • wms中对屏幕进行修改wm size设置屏幕宽高原理剖析
  • java面试题及答案2024,java2024最新面试题及答案(之一)
  • Go Modules 使用
  • 结账和反结账
  • k8s怎么监听资源的变更
  • Cobaltstrike常用功能
  • UWP与WPF:微软两大UI框架
  • 【面试】字节码文件是跨平台的吗?
  • SpringCloud中注册中心Nacos的下载与使用步骤
  • 心缘Hub小程序