当前位置: 首页 > 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);}}
}

相关文章:

前端 JS 经典:LRU 缓存算法

前言:什么是 LRU 呢,单词全拼 Least Recently Used,意思是最久未使用。这个算法是做缓存用的,比如,你要缓存一组数据,你要划分缓存块出来,因为不可能每个数据都做缓存,那么划出来的这…...

Python3 笔记:ljust、rjust 和 center

1、ljust() 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。 ljust(self, width, fillchar , /) width -- 指定字符串长度。 fillchar -- 填充字符,默认为空格。 str1 sentence str2 word…...

恒压频比开环控制系统Matlab/Simulink仿真分析(SPWM控制方式)

介绍恒压频比的开环控制方法驱动永磁同步电机的转动,首先分析恒压频比的控制原理,然后在Matlab/Simulink中进行永磁同步电机恒压频比开环控制系统的仿真分析,最后将Simulink中的恒压频比控制算法生成代码加载到实际工程中进行工程实现。 一、…...

chatgpt4和文心一言的简单对比

功能1. 写一个ebpf程序监控udp延迟 文心一言 答案 编写一个完整的eBPF程序来监控UDP延迟涉及多个步骤,包括编写eBPF C代码、编译、加载到内核,以及用户空间程序来读取eBPF map中的数据。以下是一个简化的示例框架,展示如何使用eBPF来监控U…...

React 为什么使用map来渲染列表 而不是其他循环方法

1. 声明式与函数式编程 React强调声明式编程,这意味着你只需要关心代码“做什么”,而不是“怎么做”。.map()函数是一种高阶函数,它属于函数式编程范畴,能够返回一个新数组,这非常适合用于生成组件列表。 使用.map()…...

【Axure高保真】tab切换输入表单

今天和大家分享tab切换输入表单的原型模板,这个模板方便我们快速制作表单,里面包含了输入框、下拉列表、选择器共10多种常用的元件,后续也可以根据需要自行添加到中继器里。点击tab标签可以分类填写对应的内容,这个原型模板是用中…...

OrangePi AI Pro 测试体验

感谢CSDN活动提供的OrangePi AI Pro ,之前一直用的树莓派,正好体验一下新的国产设备, 1、开机体验 整个设备包装不错,链接键盘、屏幕和鼠标,整体开机体验不错,内置OS不错,这个系统内嵌了中文输…...

【C++】:模板初阶和STL简介

目录 一,泛型编程二,函数模板2.1 函数模板概念2.2 函数模板格式2.3 函数模板的原理2.4 函数模板的实例化2.5 模板参数的匹配原则 三,类模板3.1 类模板的定义格式3.2 类模板的实例化 四,STL简介(了解)4.1 什…...

【软件开发】Java学习路线

本路径视频教程均来自尚硅谷B站视频,Java学习课程我已经收藏在一个文件夹下,B站文件夹同时会收藏其他Java视频,感谢关注。指路:https://www.bilibili.com/medialist/detail/ml3113981545 2024Java学习路线(快速版&…...

git拉去代码报错“Failed to connect to 127.0.0.1 port 31181: Connection refused“

最近参与了一个新项目,在使用git clone 克隆代码时遇到了一个报错"fatal: unable to access ‘https://example.git/’: Failed to connect to 127.0.0.1 port 31181: Connection refused",今天就和大家分享下解决过程。 报错详情 在使用git clone 克隆…...

解读信创产业根基,操作系统发展历程

信创产业根基之一操作系统 操作系统是一个关键的控制程序,负责协调、管理和控制计算机硬件和软件资源。作为硬件的首要软件扩展,它位于裸机与用户之间,充当了两者之间的桥梁。通过其核心程序,操作系统高效地管理着系统中的各类资源…...

使用Python爬取华为市场游戏类APP应用

文章目录 1. 写在前面2. 接口分析3. 爬虫开发4. 下载链接获取 【🏠作者主页】:吴秋霖 【💼作者介绍】:擅长爬虫与JS加密逆向分析!Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守…...

【Oracle】修改已经存在的序列的当前值

前情提要 在oracle中一般使用序列来实现ID自增。但是oracle中序列维护的没有mysql那么好。只是单存的递增。 比如新建了一个序列,从1开始,每次递增1。此时我向数据库里插入一条id10的数据。那么在序列查询到10的时候,插入就会报错。 所以比较…...

记一次netty客户端的开发

背景 近日要开发一个tcp客户端程序去对接上游厂商的数据源,决定使用netty去处理,由于很久没有开发过netty了,顺便学习记录下 netty搭建 考虑到我们需要多个client去对接server服务,所以我们定义一个公共的AbstractNettyClient父…...

策略模式结合Spring使用

1.抽象策略 /*** 支付方式策略* author Linging* version 1.0.0* since 1.0*/ public interface PayStrategy {void pay(BigDecimal money);}2.具体策略 /*** 支付宝* author Linging* version 1.0.0* since 1.0*/ Component("aliPayStrategy") public class AliPa…...

基于 RNNs 对 IMDB 电影评论进行情感分类

前言 系列专栏:【深度学习:算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域,讨论了各种复杂的深度神经网络思想,如卷积神经网络、循环神经网络、生成对抗网络、门控循环单元、长短期记…...

Midjourney绘画参数设置详解

在数字艺术和设计领域,Midjourney是一款强大的绘画工具,它允许艺术家和设计师以数字方式创作出精美的图像。为了充分发挥Midjourney的潜力,正确设置其绘画参数至关重要。本文将深入探讨Midjourney的绘画参数设置,帮助用户更好地掌…...

计算机毕业设计 | springboot养老院管理系统 老人社区管理(附源码)

1,绪论 1.1 背景调研 养老院是集医疗、护理、康复、膳食、社工等服务服务于一体的综合行养老院,经过我们前期的调查,院方大部分工作采用手工操作方式,会带来工作效率过低,运营成本过大的问题。 院方可用合理的较少投入取得更好…...

事务与并发控制

事务(Transaction0):要么全做,要么全不做; 事务ACID:原子性Atomicity;一致性Consistency;隔离性Isolation;持久性Durability; 并发操作问题: 1.…...

spring boot 中的异步@Async

spring boot 开启异步调用 1、启动类上添加EnableAsync注解,表示启动异步 2、在具体实现异步的方法上添加Async注解 package com.example.demo;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootAppli…...

新手入门:借助快马平台零代码起步,动手实现首个网络标识分析小工具

作为一个刚接触编程的新手,我最近在InsCode(快马)平台上完成了一个特别有意思的小项目——网络标识符查看器。这个工具虽然简单,但让我第一次完整体验了从构思到实现的开发全流程,特别适合像我这样的初学者练手。今天就把这个过程中的收获和踩…...

RWTS-PDFwriter:macOS PDF创建效率提升解决方案

RWTS-PDFwriter:macOS PDF创建效率提升解决方案 【免费下载链接】RWTS-PDFwriter An OSX print to pdf-file printer driver 项目地址: https://gitcode.com/gh_mirrors/rw/RWTS-PDFwriter RWTS-PDFwriter是一款专为macOS设计的虚拟打印机驱动程序&#xff0…...

OpenClaw异常处理:Qwen3-14B任务失败自动恢复机制

OpenClaw异常处理:Qwen3-14B任务失败自动恢复机制 1. 为什么需要异常处理机制? 上周我让OpenClaw帮我整理一个月的会议录音时,遇到了一个尴尬场景:凌晨3点任务突然中断,第二天发现只处理了前5天的内容。这种"半…...

实战指南:基于TexStudio和快马AI快速打造符合顶会要求的论文

今天想和大家分享一个实战经验:如何用TexStudio和InsCode(快马)平台快速搞定符合顶会要求的论文排版。作为经常被LaTeX折磨的科研狗,这个组合真的帮我省下了大量时间。 模板选择与基础配置 计算机领域的顶会通常要求使用acmart文档类。在TexStudio新建文…...

快速原型设计:利用快马ai十分钟搭建永久在线crm网站演示版

快速原型设计:利用快马AI十分钟搭建永久在线CRM网站演示版 最近在做一个客户关系管理系统的概念验证,需要快速搭建一个可交互的演示版本来向团队和投资人展示核心功能。传统开发方式下,从零开始构建这样一个原型至少需要几天时间&#xff0c…...

MAA助手:三步打造你的《明日方舟》自动化管家

MAA助手:三步打造你的《明日方舟》自动化管家 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https://gitcode.com…...

告别重复劳动:用快马AI生成自动化脚本,提升日常运维效率三倍

告别重复劳动:用快马AI生成自动化脚本,提升日常运维效率三倍 日常运维工作中,最让人头疼的就是那些重复性操作。比如每周都要手动检查几十台服务器的配置文件状态,或者挨个备份关键配置。这种工作不仅枯燥,还容易出错…...

从零开始高效设计专业字体:FontForge实用指南

从零开始高效设计专业字体:FontForge实用指南 【免费下载链接】fontforge Free (libre) font editor for Windows, Mac OS X and GNULinux 项目地址: https://gitcode.com/gh_mirrors/fo/fontforge 你是否曾为找不到完美匹配设计需求的字体而苦恼&#xff1f…...

FigmaCN终极指南:3分钟实现Figma全界面汉化,设计师效率提升50%

FigmaCN终极指南:3分钟实现Figma全界面汉化,设计师效率提升50% 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 你是否曾在使用Figma时因为英文界面而感到困扰&am…...

12345网络平台网址

1 下载 湘易办app2 登录3 选择 永州市4 12345热线5 发布诉求6 可以通过事发位置来定位,这样就不用描述位置了。...