链地址法
这种方法是把所有Hash地址相同的记录都链接在同一链表中
此图的Hash算法:h(key)=key%7算出对应的hash值,按照这个hash值,放到数组对应的位置上面
如何生产链表:
//先从数组上取下原来的值,给塞到新的节点去,然后把新的节点再放到数组上。
void createEntry(int hash, K key, V value, int bucketIndex) {
Entry<K,V> e = table[bucketIndex];
table[bucketIndex] = new Entry<>(hash, key, value, e);
size++;
}
再Hash法
计算hashcode的方法不止一个,一个要是算出来重复了,就用另一个算法去算。直到不重复为止
公共溢出区
建立一个公共溢出区,把冲突的都放到另一个地方,不在表里面