HashMap和HashTable的区别.要深层理解,不只是线程安全,还有Hash算法的区别

HashTable

HashMap

HashTable直接使用的是hashcode值然后使用除留余数法求出下标位置,而HashMap是使用 Hash值后重新进行了与运算,而且HashTable的
扩容时是int newCapacity = (oldCapacity << 1) + 1;,容量变为原来的2n+1,
HashMap默认的初始化大小为16。之后每次扩充newThr = oldThr << 1;,容量变为原来的2倍。

详细参考HashMap

Last updated