相关参数
LinkedHashMap是由数组加双向链表加红黑树构成的
/**
* 相比于HashMap的node,LinkedHashMap的节点增加了before和after节点,用
* 来构造每个数值间的相互关系
*/
static class Entry<K,V> extends HashMap.Node<K,V> {
Entry<K,V> before, after;
Entry(int hash, K key, V value, Node<K,V> next) {
super(hash, key, value, next);
}
}
/**
* 定义头节点
*/
transient LinkedHashMap.Entry<K,V> head;
/**
* 定义为尾节点
*/
transient LinkedHashMap.Entry<K,V> tail;
/**
* 定义输出的循序,是否按输入的顺序进行输出
*
*/
final boolean accessOrder;
构造器
/**
* 有参构造器,因为LinkedHashMap继承了HashMap因此在这个构造器中
* 显示的调用了HashMap的有参构造器
*/
public LinkedHashMap(int initialCapacity, float loadFactor) {
super(initialCapacity, loadFactor);
accessOrder = false;
}
/**
* 有参构造器,同样调用了HashMap的有参构造器
*/
public LinkedHashMap(int initialCapacity) {
super(initialCapacity);
accessOrder = false;
}
/**
* 无参构造器,调用了HashMap的无参构造器
*/
public LinkedHashMap() {
super();
accessOrder = false;
}
主要代码解析
在这里插入代码片