jdk1.7中的HashMap源码分析之扩容的问题
if ((size >= threshold) && (null != table[bucketIndex])) {
resize(2 * table.length);
hash = (null != key) ? hash(key) : 0;
bucketIndex = indexFor(hash, table.length);
}
createEntry(hash, key, value, bucketIndex);
之前一直没搞懂这两块是啥用,后来复习的时候发现,扩容后hashseed是可能发生变化的,需要重新计算hash值和下标。记录一下
hash = (null != key) ? hash(key) : 0;
bucketIndex = indexFor(hash, table.length);