视频参考:【哈希表HashMap【数据结构和算法入门6】】https://www.bilibili.com/video/BV1si4y1b7Rs?vd_source=b6379ad898bc655daa39f852409320e2
数组-寻址容易,插入和删除元素困难
链表-寻址困难,插入和删除元素容易
哈希表 = 数组 + 链表
哈希函数Hash Function
-哈希函数能快速将一个值转换为哈希值(整数)
-如果两个哈希值不同,那么这两个哈希值的原始输入也不同(如果两个不同的输入得到相同的哈希值=哈希值冲突)
-输入关键字x,使用哈希函数f(x)计算哈希值y,然后使用哈希值y来找特定的数组下标,并在对应位置输入新数据
X => f(x) = Y => Y % Array.length => Array position of X
哈希表支持的操作
- add(Key key,Value value) 将一对新的键值对加入哈希表
- get(K key) 通过关键字拿到对应的数值
- remove(K key) 通过关键字,删除哈希表中的键值对
- getSize() 获取当前键值对的数量
- isEmpty() 查看哈希表是否为空