重写Hashcode()和equals()
来源:互联网 发布:传统企业转型网络案例 编辑:程序博客网 时间:2024/06/04 19:21
当对一个对象有不同的判断equals的标准时,我们可以重写equals方法。重写equals必须按一下步骤
定义个一个类。
- class Student {
- private String name;
- private int age;
- // getters and setters
- }
重写时要遵循以下三步:
1. 判断是否等于自身.
2. 使用instanceof运算符判断 other 是否为Coder类型的对象.
3. 比较Coder类中你自定义的数据域,name和age,一个都不能少.
上面的三步也是<Effective Java>中推荐的步骤,基本可保证万无一失。
如何重写hashCode()方法
如果你重写了equals()方法,那么一定要记得重写hashCode()方法.否则就会出现,明明已经重写了equals方法,但没有达到想要的结果。例如,重写一个equals,只要Student类中的成员变量name和age相同就认为对象相同。 如果没有重写hashcode方法,当我们把
Student s1=new Student("张三","18");
Student s2=new Student("张三","18");
这2个对象加入HashSet中,发现2个都加入了,这不是想要的结果,就是因为s1,s2的hashcode返回值不同。
hashcode方法重写时要保证“你认为相同的对象都有同一个返回值” 例如:
- @Override
- public int hashCode() {
- int result =10;
- result = result * 31 + name.hashCode();
- result = result * 31 + age;
- return result;
- }
阅读全文
0 0
- 重写Hashcode()和equals()
- 重写equals()和hashCode()
- 重写equals()和hashCode()
- 重写equals 和 hashCode
- 重写equals 和HashCode
- 重写equals 和 hashcode
- hashCode和equals重写
- 重写equals和hashcode
- hashCode()和equals()重写
- 重写equals和hashCode
- 重写equals 和 hashCode
- 为什么要重写hashcode()方法以及如何重写hashcode和equals方法
- 整理 Object 类(为什么重写 equals 和 hashCode 方法)
- JAVA基础笔记(Java:重写equals()和hashCode())
- 第一题(equals和hashCode的重写)
- 第一题(equals和hashCode的重写)
- HashSet (需要重写hashCode和equals方法)
- Java:重写equals()和hashCode()
- js 常用对象
- 二维凸包 Graham扫描算法 +hdu 1392
- 学习笔记3
- 怎样把文件夹里面的图像转化成txt文本
- POJ3740 Easy Finding 舞蹈链 DLX
- 重写Hashcode()和equals()
- cocos2d打包apk,分辨率问题
- Spring boot redis的使用(二)
- poj 3844 Divisible Subsequences(数学+抽屉原理)
- 获取手机WIFI 数据的 IP
- 16CF2--1003
- PAT【1004】成绩排名【sort】
- CentOS7 安装Ngin
- Linux平台Cpu使用率的计算