散列表用链表数组实现。每个列表被称为桶。将元素放入散列表中,首先要计算该元素的散列码(hashcode),然后与桶的数目取余,所得到的结果就是保存这个元素的索引,具有相同索引(散列值)的元素放入一个桶内,串联成一个链表。
当散列表太满,或者说如果装填因子为0.75(默认值),而表中超过75%的位置已经填入元素,就需要对散列表再散列,这个表就会用双倍的桶数自动地进行再散列。桶数是指用于收集具有相同散列值的桶的数目。
再散列步骤如下:
1.创建一个桶数更多(一般为两倍)的表
2.将所有元素插入到这个新表中
3.丢弃原来的表