LRU算法的Java实现,基于LinkedHashMap

发布时间:2026/8/20 22:59:44

LRU算法的Java实现,基于LinkedHashMap
LRU算法中文名称叫做最近最少使用。比如在Redis的定期淘汰策略中是其一方式原理就是当有一些数据最近最少被使用的数据优先淘汰。实现方式有很多基于LinkedHashMap是最简单的一种LinkedHashMap 本身维护了一个双向链表可以按访问顺序access-order排列元素并且提供了 removeEldestEntry 钩子方法允许我们在插入新元素时自动移除最老条目。优点代码极少利用 JDK 原生机制。缺点LinkedHashMap 不是线程安全的多线程场景需额外同步无法精细控制链表操作如调整节点顺序时的额外逻辑。importjava.util.LinkedHashMap;importjava.util.Map;publicclassLRUCacheByLinkedHashMapK,VextendsLinkedHashMapK,V{privatefinalintmaxCapacity;publicLRUCacheByLinkedHashMap(intmaxCapacity){// 初始容量、负载因子、accessOrdertrue 表示按访问顺序super(16,0.75f,true);this.maxCapacitymaxCapacity;}OverrideprotectedbooleanremoveEldestEntry(Map.EntryK,Veldest){// 当 size 超过最大容量时移除最老的条目returnsize()maxCapacity;}// 测试publicstaticvoidmain(String[]args){LRUCacheByLinkedHashMapInteger,StringcachenewLRUCacheByLinkedHashMap(3);cache.put(1,A);cache.put(2,B);cache.put(3,C);System.out.println(cache);// {1A, 2B, 3C}cache.get(1);// 访问 1它变为最近使用cache.put(4,D);// 容量已满移除最久未使用的 2System.out.println(cache);// {3C, 1A, 4D}}}

相关新闻

表里没字段,业务又需要,字段占位符:推荐返回真正的 NULL(SELECT NULL AS xx)

表里没字段,业务又需要,字段占位符:推荐返回真正的 NULL(SELECT NULL AS xx)

2026/8/20 22:59:44

本文比较了三种SQL空字段占位写法:COALESCE(NULL, )、 和1的区别。前两者都返回含一个空格的字符串,业务含义为"无值占位",但可能干扰统计;后者返回数字1,存在类型不匹配风险。推荐使用NULL(逻辑…

蔚来ES6继续由江淮生产:深度解析代工模式背后的战略与制造逻辑

蔚来ES6继续由江淮生产:深度解析代工模式背后的战略与制造逻辑

2026/8/20 22:59:44

1. 从一则行业新闻说起:蔚来与江淮的“绑定”意味着什么?年底前,蔚来ES6这款备受市场关注的中型纯电SUV将迎来一次重要的产品更新。最近一则消息在业内传开,核心信息点很明确:新款ES6将继续由江淮汽车进行生产。对于很…

108-运行差异与版本信任链:为什么代码版本和运行现场要互相校验

108-运行差异与版本信任链:为什么代码版本和运行现场要互相校验

2026/8/20 22:59:44

适合对象:关注版本一致性、线上定位、发布可信度的后端工程师和测试工程师。 先说结论 运行差异与版本信任链不是一个孤立功能,而是精准测试平台里帮助团队做判断的一环。 它重点解决的是:为什么代码版本和运行现场要互相校验。 用大白话讲,版本能力的重点不是记录版本号…

基于SpringBoot的应急指挥通信系统(源码+文档+部署+讲解)

基于SpringBoot的应急指挥通信系统(源码+文档+部署+讲解)

2026/8/20 23:59:46

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

深度解析IEC 61982-3:电动汽车动力电池安全测试标准与工程实践

深度解析IEC 61982-3:电动汽车动力电池安全测试标准与工程实践

2026/8/20 23:59:46

1. 从一次“标准打架”说起:为什么IEC 61982-3如此重要?几年前,我参与过一个电动汽车电池包项目的国际招标评审。当时,两家供应商的测试报告摆在我们面前,一家声称其电池包通过了“最严苛的循环寿命测试”,…

Claude Code实战指南:十分钟在VSCode中集成AI编程助手

Claude Code实战指南:十分钟在VSCode中集成AI编程助手

2026/8/20 23:59:46

如果你是一名开发者,最近一定在各种技术社区看到过“Claude Code”这个名字。它可能出现在VSCode插件推荐里,出现在Python教程的评论区,甚至出现在你同事的聊天记录中。但当你真正想去了解时,却发现信息极其混乱:有人把…

FAIR-CAM智能体建模:构建可复现的虚拟生理实验室

FAIR-CAM智能体建模:构建可复现的虚拟生理实验室

2026/8/20 23:59:46

1. 项目概述:当生理学遇见智能体建模最近在跟一个做生物医学工程的朋友聊天,他提到一个让我眼前一亮的词:“控制生理学”。这可不是传统意义上研究血压、心率如何被神经体液调节的生理学,而是一个全新的交叉领域。简单来说&#x…

超级智能来了以后,谁来治理它

超级智能来了以后,谁来治理它

2026/8/20 23:59:46

当机器足够聪明以后,人类能不能建立与这种智能相匹配的治理能力? 如果回头看2026年的人工智能发展,会发现一个很有意思的变化。 过去几年,人们最关心的是模型。谁的模型更强,谁的参数更多,谁的推理能力更…

汽车CAN总线入门:从原理到实战,嵌入式开发与智能车竞赛必备

汽车CAN总线入门:从原理到实战,嵌入式开发与智能车竞赛必备

2026/8/20 23:49:46

1. 从零开始:为什么汽车工程师绕不开CAN总线?如果你刚接触汽车电子,或者从消费电子、工业控制转行过来,听到“CAN总线”这个词可能会有点懵。它不像串口、I2C那样直观,名字听起来也带着一股工业味儿。但我想告诉你的是…

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

2026/8/19 3:36:59

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

2026/8/20 21:07:35

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

2026/8/19 8:02:16

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/17 12:00:53

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/15 10:10:27

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/18 12:20:24

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…