重写类的equals方法
来源:互联网 发布:郑州java程序员工资 编辑:程序博客网 时间:2024/04/19 22:06
equals方法实现的功能是判断两个对象的内容是否相同,Object类中该方法的实现很简单,代码如下:
public boolean equals(Object obj){ return (this==obj);}
如果真正需要在项目中进行比较时,这个equals方法的作用是无法达到实际要求的,所以如果在项目中涉及的类需要比较该类型的对象时,则必须重写equals方法。
package container;public class Name {private String first;private String last;public Name(String f, String l) {this.first = f;this.last = l;}/* * 必须重写toString()方法,若不重写,则打印出来[container.Name@44585f2a], * 因为默认调用的就是该对象的toString()方法 */public String toString() {return this.first + " " + this.last;}/* * 由于在String和基本数据类型封装器中已经重写了equals方法, 而在name类中没有重写, 所以无法删除name对象 * 那么必须重写name的equals方法 */public boolean equals(Object obj) {if (obj instanceof Name) {Name name = (Name) obj;return first.equals(name.first) && last.equals(name.last);}return super.equals(obj);}// 重写类的equals方法必须重写类的hashCode方法public int hashCode() {return first.hashCode();}}
/*equals方法编写示例*/
package container;public class MyEquals {/* * 对象成员变量 */String name;/* * 基本数据类型成员变量 */int n;/* * 判断对象内容是否相同 * * @param obj需要比较的对象 */public boolean equals(Object obj) {// 若比较的内容是本身if (obj == this) {return true;}// 对象类型不同if (!(obj instanceof MyEquals)) {return false;}// 转换成当前类类型MyEquals m = (MyEquals) obj;/* * 依次比较对象中每个变量 */// name属性不同if (!name.equals(m.name)) {return false;}// n属性不同if (!(n == m.n)) {return false;}// 如果都相同,则返回truereturn true;}}
0 0
- 重写类的equals方法
- equals()方法的重写
- equals方法的重写
- equals()方法的重写
- equals方法的重写
- equals()方法的重写
- equals()方法的重写
- equals方法的重写
- equals()方法的重写
- equals()方法的重写
- 62 Java 重写类的equals()方法
- 重写Java String类的equals()方法
- 重写Person类的equals方法
- 重写equals方法的注意事项
- 重写完美Equals的方法
- equals()方法的重写问题
- 重写equals方法的注意事项
- equals方法的重写1
- NSLog效率低下的原因及尝试lldb断点打印Log
- Socket网络编程学习之路 第五篇 ----winsock网络IO模型(2)之 重叠IO模型
- 第十四周工作日志
- 数据挖掘:数据挖掘Apriori算法
- jquery控制select的值,选中状态
- 重写类的equals方法
- oj C++继承(改错题)
- java中 Random类的用法
- 【Leetcode】Sort List
- 鱼类小志
- SourceTree 添加远程仓库时报错
- 无锁队列的环形数组实现(Lock Free Queue Implementation in Ring Array)
- #include #import @class
- 我的算法学习之路