数据结构 | 散列表(Hash Table)
散列表(Hash Table) 又名哈希表/ Hash 表,是根据(Key) 直接访问子内存存储位置值(Value)的数据结构,他是由数组演化而来的,利用了数组支持按照下标进行随机访问数据的特性。
什么是散列表
- 散列表也可以叫: Hash表
- 根据 key 直接访问 value 的数据结构。
- 由数组演化过来的,利用了数组使用下标进行访问数据。
散列(Hash)冲突
key 指定到对应的内存位置 需要通过 散列函数(hashCode),计算出来下标。
所以就存在这一种情况: 多个key 指定到同一个内存地址。这个就叫做Hash 冲突。
散列冲突的解决方法 - 链表法(拉链法)
- 数组的每个下标对应的地址称之为桶(bucket) 获取 槽(slot)。
- 每个桶(槽)都指向一条链表。
- key 指向的下标如果是同一个,都会放到这个桶(槽)相对应链表或者红黑树中。