底层是数组和链表的结合,叫做链表散列。用hashcode来获取在哈希表中的索引,返回一个int数值。
对象相等,hashcode也相等;但hashcode相等,对象不一定相等(比如一个节点上有一串链表元素不同对象)
哈希算法:把字符串转成数字的算法,就是把key进行运算,得到地址。把字符串的每个字母的assic码相加然后取余,得到索引位置。
常见的哈希算法

但是不同的对象,可能会产生同样的地址,会发生哈希冲突
处理哈希冲突的方法:
1.开放寻址法:(线行探查法)找到空的坑就进入;(平方探查法)或者找到坑后会到坑地址的平方进入,避免元素全部集中在一块。
2.拉链法:冲突时直接在同一地址形成一个链表,依次加在链表里,但是查找效率低。
浙公网安备 33010602011771号