3. 为了实现散列表的有序性,在散列函数和元素数组中间加了一层 映射表(数组),大小与存储元素的数组相同,它存储的元素类型为整型,用于保存元素在实际存储的有序数组的下标。映射表的下标是 ,存储的值为实际数据的下标。

5. 自动扩容:首先检查数组中已经被删除的元素所占的比例(已经被删除但未被移出的元素),如果比例达到阀值就会触发重建索引的操作,这个过程会把删除的Bucket 移除,后面的 Bucket往前移补上空缺的 Bucket。如果未达到阀值,则会分配一个原数组 2 倍大小的新数组,然后把原数组的元素复制到新的数组上,最后重建索引。阀值不是固定的。

6. 重建索引:只是将旧数组的元素复制到新数组上,不会复制中间的映射表,因为中间的映射表已经无法使用了,k - v 的映射关系需要重新计算。

还没有人赞赏,快来当第一个赞赏的人吧!