HashMap和双向链表合二为一即是LinkedHashMap
LinkedHashMap可以保持插入顺序
根据链表中元素的顺序可以将LinkedHashMap分为:保持插入顺序的LinkedHashMap 和 保持访问顺序的LinkedHashMap,其中LinkedHashMap的默认实现是按插入顺序排序的。
按照访问顺序遍历时,每次访问完map中的元素后,会将该元素置入map的最后一位,
例如:LinkedHashMap<String, Integer> map = new LinkedHashMap<String, Integer>(6,0.75f,true);
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
map.put("d", 4);
map.get("c");
map.get("b");
此时在map中的元素的顺序是 a,d,c,b
以上原文链接:https://blog.csdn.net/qq_35811626/article/details/88312644
下面是我自己写的:
LinkedHashMap实现LRU很简单,给LinkedHashMap构造函数传入参数为true,则LinkedHashMap保持访问顺序,
因为按照访问顺序遍历时,每次访问完map中的元素后,会将该元素置入map的最后一位。LRU选择最近最久未使用的页面予以淘汰,
那就是淘汰链表第一个结点。