美文网首页
2017-04-12 Java hashMap 学习

2017-04-12 Java hashMap 学习

作者: 冰红茶盖 | 来源:发表于2017-07-28 16:24 被阅读0次

为啥 equals 和 hashCode 需要同时重写

参考IBM

延伸阅读:immutable class 待解读

String的equals(), hashCode()

String hash 算法:
s[0]31^(n-1) + s[1]31^(n-2) + ... + s[n-1]

for (int i = 0; i < value.length; i++) { h = 31 * h + val[i]; }
31 是一个神奇的数字,貌似是冲突比较少,比较平均的经验值。
戳这里也有一个例子

hash 冲突处理

两种:Separate chaining(同hash 加链表) |Open addressing(同hash 存下一地址)

区别:冲突时是否将数据存在同一 bucket。

参考 hash table wiki

java hashMap 的实现和冲突处理

待续

相关文章

网友评论

      本文标题:2017-04-12 Java hashMap 学习

      本文链接:https://www.haomeiwen.com/subject/rdxvattx.html