哈希冲突处理方法总结
1. 开放定址法
线性探测再散列,二次探测再散列,伪随机探测再散列。
2. 重哈希法
多个哈希方法,如果第一下哈希不能找到空位放置,则采用第二个,第三个哈系方法计算,直到没有冲突发生为止。
3. 链地址法
JDK的HashMap中采用的方法。如哈希时发生冲突,在哈希到的位置上建立链表,在java8中,链表的个数超过一个阈值后会转化成红黑树,大大提高查询效率,默认阈值是8。
4. 建立一个公共溢出区
冲突后把新加的值统一放到一个新地方管理。
线性探测再散列,二次探测再散列,伪随机探测再散列。
多个哈希方法,如果第一下哈希不能找到空位放置,则采用第二个,第三个哈系方法计算,直到没有冲突发生为止。
JDK的HashMap中采用的方法。如哈希时发生冲突,在哈希到的位置上建立链表,在java8中,链表的个数超过一个阈值后会转化成红黑树,大大提高查询效率,默认阈值是8。
冲突后把新加的值统一放到一个新地方管理。