hashcode
是什么:由哈希函数将对象的属性值转换为的一个整数(hashcode)
放在代表这个整数的index下面
作用:快速比较相等
collision
因为输入有限,输出无限,所以肯定会出现重复的hashcode
解决方法:
链地址法
用list或者set储存,每一个index储存一个hashcode,重复的都储存在一个index里
哈希表扩容
当L达到了一定的值,扩大hashtable
对象的下表为他原坐标%hash表长度。
高位丧失
原因:因为取模运算,如果arraysize是2的幂次方比如16,会直接忽略高位,只保留最后4位
解决方法:例如用31位来算这个对象的长度,不会出现被忽略高位的情况