Q.哈希表的实现方法?
数组:寻址容易,插入和删除元素困难
链表:寻址困难,插入和删除元素容易
哈希表=数组+链表(拉链法,如下图)
Q.如何插入键值对?
X=>f(X)=>Y>=Y%Array.length=>Array position of X
一个整数 X 经过哈希函数 f(X)之后,得到一个哈希值 Y,用 Y 对数组的长度取模,就能得到X该存放的位置
这里的X是key值
Q.哈希函数
哈希函数能快速将一个值转化为哈希值(整数)
哈希值冲突:两个不同的输入得到相同的哈希值
Q.哈希表支持的操作?
add(Key key,Value value):将一对新的键值对加入哈希表
get(K key):通过特定的key值拿到所对应的value值
remove(Key key):通过关键字,删除哈希表中的键值对
getSize():当前键值对的数量
isEmpty():查看哈希表是否为空