分类: Android平台
2013-07-31 15:13:35
LinkedHashMap的构造方法有一个是这样子的:
public LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder)
{
super(initialCapacity, loadFactor);
this.accessOrder = accessOrder;
}
参数说明:
重点看看accessOrder的作用,使用无参构造方法时,此值默认是false。
那么设置成true的时候会是什么样子的呢?
public static void main(String[] args)
{
Mapmap = new LinkedHashMap (16,0.75f,true);
map.put("1", "a");
map.put("2", "b");
map.put("3", "c");
map.put("4", "e");
for (Iteratoriterator = map.values().iterator(); iterator.hasNext();) {
String name = (String) iterator.next();
System.out.print(name);
}
}
上面的代码打印结果为:abce,很正常,按照加入的顺序打印
现在增加两行代码:
点击(此处)折叠或打开
这就是基于访问的顺序,get一个元素后,这个元素被加到最后(使用了LRU 最近最少被使用的调度算法)