LinkedHashMapt深入学习
1.LinkedHashMap
是HashMap的一个子类.是Map接口的哈希表和链表的实现.是有序的HashMap
维护着一个双重链接列表,不是同步的.
可以按插入顺序的链表和访问顺序的链表.默认是按插入顺序排序
2.成员变量:
重新定义了HashMap中的Entry,除了保存当前对象的引用外,还保存了上一个元素和下一个元素的引用
private static class Entry<k,v>extends HashMap.Entry<k,v>{
Entry<k,v>before,after;
}
boolean accessOrder默认值为false. 按照插入顺序排序. 当为true时.按照访问顺序排序(即访问一个数据将该数据移至链表的表头,原来的位置删除)
3.主要特点:
LinkedHashMap能够按照插入的顺序或者访问顺序迭代.
可以用作LRU(Least Recently Used)(最近最少使用)的缓存(重写removeEldestEntry方法.默认的不清除不常读的数据,)