- 开放寻址法
只用数组一种数据结构存储,继承了数组的优点,对CPU缓冲友好,易于序列化。但是对内存的利⽤率并不如链表法,且冲突的代价更高。当数据量⽐较⼩、装载因⼦⼩的时候,适合采⽤开放寻址法。这也是Java中的ThreadLocalMap使⽤开 放寻址法解决散列冲突的原因。
- 链表法
链表法对内存的利⽤率⽐开放寻址法要⾼。因为链表结点可以在需要的时候再创建,并不需要像开放寻址法那样事先申请好。链表法⽐起开放寻址法,对⼤装载因⼦的容忍度更⾼。基于链表的散列冲突处理⽅法⽐较适合存储⼤对象、⼤数据量的散列表,⽽且,⽐起开放寻址法,它更加灵活,⽀持更多的优化策略,⽐如⽤红⿊树代替链表。