每次初始化HashMap都会构造一个table数组,而table数组的元素为Entry节点。
static class Entry<K,V> implements Map.Entry<K,V> {
final K key;
V value;
Entry<K,V> next;
int hash;
}
HashMap也可以说是一个数组链表,HashMap里面有一个非常重要的内部静态类——Entry,这个Entry非常重要,它里面包含了键key,值value,下一个节点next,以及hash值,Entry是HashMap非常重要的一个基础Bean,因为所有的内容都存在Entry里面,HashMap的本质可以理解为 Entry[ ] 数组。
Entry<K,V> e = table[indexFor(hash, table.length)]
HashMap底层就是一个数组结构,数组中的每一项又是一个链表,当新建一个HashMap的时候,就会初始化一个数组。
// 根据key的keyCode重新计算hash值。
7 int hash = hash(key.hashCode());
8 // 搜索指定hash值在对应table中的索引。
9 int i = indexFor(hash, table.length);
https://www.cnblogs.com/constantingF/p/7446307.html
https://www.cnblogs.com/holyshengjie/p/6500463.html
https://www.cnblogs.com/yuanblog/p/4441017.html