深入一下hashcode
来源:互联网 发布:linux mount ext4 编辑:程序博客网 时间:2024/06/03 22:49
1. java String中hashcode计算公式:
h(s)=s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
为什么取31?31是odd prime number,不取偶数,因为一个数乘以2相当于移位操作,如有溢出会导致information lost
31*i = (32 - 1)*i = i << 5 - ii,乘法操作快
-> http://stackoverflow.com/questions/299304/why-does-javas-hashcode-in-string-use-31-as-a-multiplier
2. override equal时 也要override hashcode
e.g. 用map,定义如果key相等则object相等
-> http://stackoverflow.com/questions/2265503/why-do-i-need-to-override-the-equals-and-hashcode-methods-in-java
0 0
- 深入一下hashcode
- 重写一下hashCode方法
- 深入 HashCode 方法
- 深入HashCode方法
- 深入HashCode方法
- 深入HashCode方法
- 深入HashCode方法
- 深入理解HashCode(转)
- 深入 HashCode 方法
- HashCode深入理解
- HashCode深入理解
- 深入HashCode方法
- 深入理解HashCode和Equals
- 深入了解HashCode和Equals
- equals&hashCode的深入解析
- 深入HashCode方法(转)
- 深入理解 equal 与 hashcode
- java HashCode之深入理解
- 解决IE8不兼容HTML5标签的方法
- 多线程知识学习
- WebView与Cookies 的问题
- Cadence基础知识0(Cadence OrCAD和Allegro SPB区别)
- Redis分布式锁java实现
- 深入一下hashcode
- PyCharm设置python新建文件 模板修改 设置 文件为python 和utf-8 解决控制台输出乱码
- C++编写DLL并使用C++调用
- apktool更新网址
- iOS Instruments来检验你的app
- ubuntu 的grub 修复
- 欢迎使用CSDN-markdown编辑器
- jQuery MiniUI - 专业WebUI控件库。
- shell在xcode中涉及到的关键字