static class Entry<K, V> extends HashMap.Node<K, V> {
//增加了节点作为链表的before和after域
Entry<K, V> before, after;
Entry(int hash, K key, V value, Node<K, V> next) {
super(hash, key, value, next);
}
}
有一个final boolean accessOrder可以在构造时指定。
public LinkedHashMap(int initialCapacity,
float loadFactor,
boolean accessOrder) {
super(initialCapacity, loadFactor);
this.accessOrder = accessOrder;
}
如果accessOrder为true则get()时也会将节点移动到链尾,false时只有插入时才移到链尾,即可以按访问或者插入顺序排序。