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

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

 数据结构之HashMap

2.   元素插入位置

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

数据结构之HashMap

3.   Hash计算

数据结构之HashMap

4.   Tables何时扩容

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

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

数据结构之HashMap

5.   扩容后元素重新hash

   e.next = newTable[i];

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

数据结构之HashMap

6.   元素删除

数据结构之HashMap

 



相关文章:

  • 2021-07-02
  • 2021-12-12
  • 2023-03-24
  • 2021-12-02
  • 2021-06-08
  • 2018-10-07
猜你喜欢
  • 2019-03-31
  • 2021-06-29
  • 2022-12-23
  • 2022-12-23
  • 2021-07-31
相关资源
相似解决方案