LRU least recently used 与LinkedHashMap

Java36

LRU ,最近最少使用淘汰算法,用于存储 限量limit的数据,不超过 limit的数据将直接存储,若超过limit,则将"最老的数据" 淘汰掉。使用LinkedHashMap实现。

LinkedHashMap相较于HashMap增加了 排序,但又比TreeMap less cost

LinkedHashMap继承自HashMap,在entry间维系一个双向链表,但具有预指定迭代顺序,通常为插入顺序。这种情况下,如果key被re-inserted,其顺序不会改变,即更新key并不会改变原有顺序。

但还可以指定排序为按entry最后访问排序。

A special {@link #LinkedHashMap(int,float,boolean) constructor} is provided to create a linked hash map whose order of iteration is the order in which its entries were last accessed, from least-recently accessed to most-recently (access-order).  This kind of map is well-suited to building LRU caches.

其基础api与HashMap时间cost类似,Performance is likely to be just slightly below that of

但LinkedHashMap迭代器耗时与map的size相关,而非capacity。

```

输入验证码查看隐藏内容

扫描二维码关注本站微信公众号 Johngo学长
或者在微信里搜索 Johngo学长
回复 svip 获取验证码
wechat Johngo学长

相关文章
Java

JAVA 线程的6种状态

线程状态(Thread.State)。线程处于下列状态的其中之一。 一个线程一次只能有一个状态。这些状态是虚拟机线程状态,不能反映任何操作系统的线程状态。[En]A thread can only h...
Java

Mysql优化

1、选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽...
Java

Vue初探

MVVM模型 M:模型(Model) :对应 data 中的数据 V:视图(View) :模板(理解为html页面) VM:视图模型(ViewModel) : Vue 实例对象 数据驱动视图: 如上图...
Java

【每日算法】动态规划五

918.环形子数组的最大和 152.乘积最大子数组 1567.乘积为正数的最长子数组长度 难度[中等] 给定一个...
Java

2.HTTP请求的GET与POST方式的区别

答: Get:是以实体的方式得到由请求URI所指定资源的信息,如果请求URI只是一个数据产生过程,那么最终要在响 应实体中返回的是处理过程的结果所指向的资源,而不是处理过程的描述。 Post:用来向目...
Java

idea自动补全代码及scanner方法快捷键

1.Shift+Enter: 不管鼠标位置在哪都能向下插入一行。 适合场景:修改刚写完的某条语句的某个地方之后,不需要用鼠标点到语句最后再回车,直接Shift+Enter接着往下打。 2.Ctrl+S...
Java

Halo 开源项目学习(六):事件监听机制

基本介绍 Halo 项目中,当用户或博主执行某些操作时,服务器会发布相应的事件,例如博主登录管理员后台时发布 "日志记录" 事件,用户浏览文章时发布 "访问文章" 事件。事件发布后,负责监听的 Bea...
Java

设计模式之迭代器模式

本文介绍设计模式中的迭代器模式,首先通俗的解释迭代器模式的基本概念和对应的四个角色,并根据四个角色举一个典型的实例,为了加强知识的连贯性,我们以Jdk源码集合中使用迭代器模式的应用进一步说明,最后说明...
Java

面向对象3(Java)

即同一方法可以根据发送对象的不同而采用多种不同的行为方式 对象的实际类型已确定,但有许多引用类型可以指向该对象[En]The actual type of an object is determine...
Java

Java常用集合基础概念及源码流程分析

ArraysList,基于数组实现,默认容量为10,扩容时会先创建一个原始1.5倍的数组,然后再把元素复制过去。特点: 有序,可存重复元素,可存null 查询快,增删慢,适合查询较多的场景 如果使用无...
Java

EVE-NG 安装和使用过程中出现的问题

vmware 不能启动EVE-NG/vmware闪退 同类问题(带错误消息的): 原因猜测: 可能是Hyper-v 与 vmware 不兼容所导致,删除Hyper-v 问题解决了 注意: 如果不想删除...
Java

Java/后端学习路线

自学/学习路线这样的一期我想写很久了,因为一直想写的全一点硬核一点所以拖到了现在,我相信这一期对不管是还在学校还是已经工作的同学都有所帮助,不管是前端还是后端我都墙裂建议大家看完,因为这样会让你对你所...