JAVA 中LinkedHashMap要点记录
JAVA 中LinkedHashMap要点记录
构造函数中可能出现的几个参数说明如下:
1、initialCapacity 初始容量大小,使用无参构造方法时,此值默认是16
2、loadFactor 加载因子,使用无参构造方法时,此值默认是 0.75f
3、accessOrder false: 基于插入顺序 true: 基于访问顺序
其余的几个参数都好理解,关键是最后一个参数,是LinkedHashMap区别于其余类型的HashMap的一个关键特性所在。 对于accessOrder设置为true的时候,其依据LRU的原则,会按照最近使用次数进行排序,最近使用的会被排在后面,不使用的会被排在后面。
此外,可以通过覆写removeEldestEntry方法,来实现控制此Map的最大key条数,当Map中key数量达到指定的设定值的时候,就会按照指定的排序规则,将排在最前面的数据给删除掉,然后插入新的数据(覆写方法之后,在调用put方法的时候会自动调用,无需业务代码中显式调用),示例代码如下所示:
public class FixedLengthLinkedHashMap<K, Vextends LinkedHashMap<K, V>
{
private int maxEntries; public FixedLengthLinkedHashMap(int maxEntries, boolean accessOrder)
{
super(16, 0.75f, accessOrder); this.maxEntries = maxEntries;
} private static final long serialVersionUID = 1287190405215174569L; protected boolean removeEldestEntry(Map.Entry<K, Veldest)
{
return size() maxEntries;
}
}
比较适合需要排序,或者需要限制Map缓存数量、或者是需要清理最早或者最不常用的数据的场景。
但是需要注意一点: LinkedHashMap是非线程安全的,多线程场景需要注意。
JAVA 中LinkedHashMap要点记录的更多相关文章
- 第79节:Java中一些要点
第79节:Java中一些要点 前言 一些知识点忘了没,可以通过一个点引出什么内容呢?做出自己的思维导图,看看自己到了哪一步了呢 内容 如果有人问jre,jdk,jvm是什么,你怎么回答呢? jre的英 ...
- slf4j+log4j在Java中实现日志记录
小Alan今天来跟大家聊聊开发中既简单又常用但必不可少的一样东西,那是什么呢?那就是日志记录,日志输出,日志保存. 后面就统一用日志记录四个字来形容啦. 日志记录是项目的开发中必不可少的一个环节,特别 ...
- JAVA 中日志的记录于使用
java中常用的日志框架 日志接口 Commons Logging Apache Commons Logging是一个基于Java的日志记录实用程序,是用于日志记录和其他工具包的编程模型.它通过其他一 ...
- JAVA中一些需要记录的知识点(进阶部分)···持续更新
1.JAVA中的相对路径 file = new file("")与file = new file("./")方式相同,该路径为整个project的根目录(实际上 ...
- Java中数组要点总结
1.数组是基本数据类型和字符串类型的容器(引用数据类型),而集合是类数据类型的容器: 2.数组定义的格式: (1)一般格式: 元素类型[] 数组名 = new 元素类型[元素个数或者数组长度]: 其中 ...
- java中的List记录是否完全匹配方法
今天要说的是给List分组,然后用Map来封装,可能你看了以后还是有一些模糊. 先看一下项目结构图: User类是一个VO类,主要逻辑还是在MapTestBak上面. 运行效果: 原理图: 1.在st ...
- Java异常使用要点记录
近期有离职的想法,奈何简历过于寒碜,技术懂的少,基础也薄弱,想要提升自己却不知从哪里入手.在郁闷一段时间后偶然间看到一篇博客,博主说出了许多人的心声,同时也指出了切入点,的确基础才是重点,是时候沉迷学 ...
- java中开源日志记录工具log4j
日志:除了能记录异常信息,还可以记录程序正常运行时的关键信息. 使用log4j来进行日志文件记录经典步骤: 001.在项目中创建一个lib文件夹,然后将下载好的jar包copy到该文件夹下 002.对 ...
- Java中使用Log4j记录错误、输出日志
简介: Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进 ...
随机推荐
- 《剑指Offer》面试题5-替换空格
题目:请实现一个函数,把字符串中的每个空格替换成"%20".例如输入"We are happy.",则输出"We%20are%20happy.&quo ...
- Tracker-store
升级后发现有个tracker-store占用cpu非常厉害,查了下,好像是GNOME 3使用 Documents 來整合 本机 以及 在线(Google / Twitter)账户的文件,这个功能会呼叫 ...
- [JAVA第二课] java命名规则
Java良好的命名规则以及代码风格可以看出来一个程序员的功底,好多公司也会注重这方面,他们招聘员工在有些时候往往就是根据一个人的代码风格来招人,所以下面就就我知道的代码风格作简要的说明一下.Java命 ...
- Jenkins项目部署使用教程-----02视图及项目添加
注意:此以我公司为例,以svn上传代码 一.添加视图 1.点击右上角”+”号,新建新视图 勾选在该视图下显示的项目或者在该视图新建项目,点保存即可. 二.新建项目 1.点击左上角的新建,创建新项目. ...
- ajax 轮询 和 php长连接
只看加粗的字体 js 部分 1: ajax 成功回调函数中 一定要用时间函数间隔调用 get_comment(). get_comments('init'); function ...
- java基础解析系列(十)---ArrayList和LinkedList源码及使用分析
java基础解析系列(十)---ArrayList和LinkedList源码及使用分析 目录 java基础解析系列(一)---String.StringBuffer.StringBuilder jav ...
- angular内置provider之$compileProvider
一.方法概览 directive(name, directiveFactory) component(name, options) aHrefSanitizationWhitelist([regexp ...
- Intelligence System
Intelligence System Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- js 添加事件 attachEvent 和 addEventListener 的区别
1.addEventListener 适用w3c标准方法addEventListener绑定事件,如下,事件的执行顺序和绑定顺序一致,执行顺序为method1->method2->meth ...
- strict 严格模式
严格模式可以让你更早的发现错误,因为那些容易让程序出错的地方会被找出来 打开严格模式:"use strict" 不支持的javascript引擎会忽略它,当作是一个未赋值字符串 ...