LinkedHashMap的accessOrder的作用
来源:互联网 发布:雇网络维护人员要求 编辑:程序博客网 时间:2024/06/05 01:39
LinkedHashMap的构造方法有一个是这样子的:
1 public LinkedHashMap(int initialCapacity,2 float loadFactor,3 boolean accessOrder) {4 super(initialCapacity, loadFactor);5 this.accessOrder = accessOrder;6 }
参数说明:
- initialCapacity 初始容量大小,使用无参构造方法时,此值默认是16
- loadFactor 加载因子,使用无参构造方法时,此值默认是 0.75f
- accessOrder false: 基于插入顺序 true: 基于访问顺序
重点看看accessOrder的作用,使用无参构造方法时,此值默认是false。
那么设置成true的时候会是什么样子的呢?
1 public static void main(String[] args) { 2 Map<String, String> map = new LinkedHashMap<String, String>(16,0.75f,true); 3 map.put("1", "a"); 4 map.put("2", "b"); 5 map.put("3", "c"); 6 map.put("4", "e"); 7 8 for (Iterator<String> iterator = map.values().iterator(); iterator 9 .hasNext();) {10 String name = (String) iterator.next();11 System.out.print(name);12 }13 }
上面的代码打印结果为:abce,很正常,按照加入的顺序打印
现在增加两行代码:
1 public static void main(String[] args) { 2 Map<String, String> map = new LinkedHashMap<String, String>(16,0.75f,true); 3 map.put("1", "a"); 4 map.put("2", "b"); 5 map.put("3", "c"); 6 map.put("4", "e"); 7 8 //new add 9 map.get("1");10 map.get("2");11 12 for (Iterator<String> iterator = map.values().iterator(); iterator13 .hasNext();) {14 String name = (String) iterator.next();15 System.out.print(name);16 }17 }
打印结果为:ceab
这就是基于访问的顺序,get一个元素后,这个元素被加到最后(使用了LRU 最近最少被使用的调度算法)
阅读全文
0 0
- LinkedHashMap的accessOrder的作用
- LinkedHashMap的特性
- LinkedHashMap的实现原理
- LinkedHashMap的removeEldestEntry方法
- LinkedHashMap的removeEldestEntry方法
- LinkedHashMap的实现原理
- LinkedHashMap 的介绍
- LinkedHashMap的特性:
- linkedHashMap的应用
- LinkedHashMap的实现原理
- LinkedHashMap的实现原理
- LinkedHashMap的扩展应用
- LinkedHashMap的实现原理
- 有序的map LinkedHashMap
- LinkedHashMap 的实现原理
- LinkedHashMap的介绍
- LinkedHashMap的学习
- LinkedHashMap 的实现原理
- jquery.custom自动补全插件
- Tomcat配置
- 股东人数选股软件V1.2
- Redis操作集合
- 验证码短信应用场景
- LinkedHashMap的accessOrder的作用
- java NIO系列教程(九)
- android7.0修改系统默认时间
- xshell的快捷键(非常实用)
- java NIO系列教程(十)
- Redis操作Hash
- SpannableString 基本用法
- C++标准库中的数学函数
- 全国电子设计大赛历年考题归类分析--太行山麓创客空间基地