1.定义变量accessOrder
public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V> {
final boolean accessOrder;
public LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder) {
super(initialCapacity, loadFactor);
this.accessOrder = accessOrder;
}
}
2.最近访问的节点移动到链表末尾
public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V> {
void afterNodeAccess(Node<K,V> e) { // move node to last
LinkedHashMapEntry<K,V> last;
if (accessOrder && (last = tail) != e) { //e不是tail
LinkedHashMapEntry<K,V> p =
(LinkedHashMapEntry<K,V>)e, b = p.before, a = p.after;
p.after = n