数据结构-字典
简介
一些操作:
1. set(key,value):添加键值对
2. delete(key):通过键值移除元素
3. has(key):检查键
4. get(key):由键获取值
形式:[键:值]对
散列表(哈希表)
散列表:散列表(也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值(通过散列函数转化为对应的哈希值)映射到表中一个位置来访问记录,以加快查找的速度
散列表与其他数据结构的比较:
其他数据结构获取值时需要遍历,而散列表可以快速定位元素
实现简单的哈希表:
散列函数(这里举例两种):
1. loseloseHashCode函数
2. djb2HashCode函数
散列表的冲突问题:若两个散列值相同,哪一个添加早,就会被覆盖掉
冲突解决方案:
1. 分离链接法:在相同的散列值处,生成一个链表存放相同散列值对应的数据(优势:新创建了一个空间用来存放相同散列值的数据)
2. 线性探查法:若遇到相同的散列值处有数据时,向下探查空位置,直到有空位置为止(优势:代码比较简单)
3. 也可以利用一些生成的哈希值不那么容易产生冲突的散列函数
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!