学习effective java-9对所有对象共同的方法之覆写equals方法时请同时覆写hashCode
来源:互联网 发布:网络阅卷y100edu 编辑:程序博客网 时间:2024/05/19 11:47
该知识点是自己从书籍中学习的笔记
在很多情况下,如果覆写了equals方法,但是未覆写hashCode话,会导致错误发生。而这种错误发生debug是很困难的。如果未覆写hashCode的话,那么HashMap,HashSet,HashTable集合类将会有很大的问题。
对于hashCode有这样的规约:
1. 如果一个对象的equals作比较并且该对一直未被修改的话,那么该对象返回的hashCode一定是一样的在运行期间。当然hashCode在不同的机器、不同的运行期间是可以不同的。
2. 如果两个对象通过equals方法对比是相等的话,那么其hashCode也必然相等;如果两个对象通过equals不相等的话,那么其hashCode也必然不等。
当覆写hashCode方法的时候,不要指望通过排除计算hashCode的一步的域方式来提高性能。否则的话,会导致hashCode范围很小,分布的链会很长,在查找的时候会很慢。
总之,如果两个对象通过equals方法比较相等的话,请记住一定要覆写hashCode方法。
- 学习effective java-9对所有对象共同的方法之覆写equals方法时请同时覆写hashCode
- 学习effective java-8对所有对象共同的方法之覆写equals方法时请遵从一般规约
- 学习effective java-11对所有对象共同的方法之覆写clone方法时请慎重考虑
- 学习effective java-10对所有对象共同的方法之覆写toString方法
- 对象相等判断时,覆写equals方法时同时覆写hashcode方法
- 对象相等判断时,覆写equals方法时同时覆写hashcode方法
- 学习effective java-12对所有对象共同的方法之考虑实现Comparable
- JAVA学习之Object类-equals方法的覆写
- java对象覆写hashCode equal方法
- Effective Java读书笔记、感悟——2.1对所有对象都通用的方法之equals
- 覆写equals方法必须覆写hashCode方法
- 如何覆写java中的equals和hashcode方法
- 类中equals,hashcode方法的覆写
- effective-java 学习笔记 覆写hashCode
- 使用Set集合时,覆写hashCode()和equals()方法
- JAVA中自定义对象比较时重写equals()方法的同时要重写hashcode()方法
- 8. 【对于所有对象都通用的方法】如何正确覆写equals方法
- JAVA学习之类的equals方法覆写
- JAVA泛型类型的使用举例
- ALTER TABLE 语句
- php 的post
- 备份恢复命令
- nginx事件模型小结
- 学习effective java-9对所有对象共同的方法之覆写equals方法时请同时覆写hashCode
- hadoop 0.21的bakupnode的工作过程分析
- cocoa编程判断iPhone是否越狱jailbreak
- CentOS 安装xfce桌面+vncserver远程管理
- art of disassembly----chapter01----lesson9--Opcodes and Mnemonics---02
- 看英文书记录的单词-2
- 基于网站现状,考虑出一个单点登录的解决方案,正在试验中
- .net导出Excel
- Unity Disable按钮