数据结构之HashMap

1.   Tables为什么设计成2的幂次方

加快元素插入位置索引的查找,提升效率

 

2.   元素插入位置

插入的元素总是插入到table[bucketIndex]的链表头。


3.   Hash计算

4.   Tables何时扩容

table中的元素size达到threshold的时候,在继续添加元素的时候,会进行扩容操作,以保证达到较好插入效果。Threshold= tableSize * loadFactor

PS:这里的size并不是tables被占用的情况,而是插入元素的多少。因为tables中的元素采用的是链表的设计。


5.   扩容后元素重新hash

   e.next = newTable[i];

   newTable[i] = e;//保证后插入的元素总是插入到链条头

6.   元素删除



猜你喜欢

转载自blog.csdn.net/fzucts/article/details/80027130