hash表如何插入元素
代码解析
final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) {
//tab为hash表中数组,i为数组索引下标,p为索引位置i的元素,n为数组长度
Node<K,V>[] tab; Node<K,V> p; int n, i;
//如果数组为空,初始化数组
if ((tab = table) == null || (n = tab.length) == 0)
n = (tab = resize()).length;
//如果当前索引位置为空,在当前位置上生成新结点
//详见下方问题一、二
if ((p = tab[i = (n - 1) & hash])