`
橄榄绿
  • 浏览: 277091 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

重写Equals方法应该注意的几点

 
阅读更多

重写Equals方法应该注意的几点

 

  1. 自反性:对任意X,X.equalse(X)一定返回true;
    
    
  2. 对称性:对任意X和Y,如果有X.equals(Y)为true则,Y.equals(X)也一定为true
    
    
  3. 传递性:对任意x,y,z,如果有x.equals(y)返回true,y,equals(z)返回true,则x.equals(z)也一定返回true
    
    
  4. 一致性:对任意x和y,如果有x.equals(y)为true,则无论调用多少次返回的结果都为true
    
    
  5. 对任何不是null的x,x.equals(null)返回的一定是null
    
    

分享到:
评论

相关推荐

    【面试】hashCode与equals两者之间的关系 / == 和equals / 为什么要重写equals方法 / 重写equals /hashcode方法 / 为什么要重写hashCode方法

    【面试】中提到的几个关键知识点集中在对象比较、equals()和hashCode()方法的使用以及它们之间的关系上。这些概念在Java编程中至关重要,特别是在处理集合类和比较对象时。 1、**hashCode与equals两者之间的关系**...

    Java中equals()方法重写实现代码

    * 如果没有重写equals()方法的类,需要重写该方法来实现对象内容的比较。 * 在equals()方法中,需要比较对象的成员变量是否相同。 * Java语言中的“==”运算符对于基本数据类型就是比较其值,而对于对象就是比较对象...

    equals,hashcode,toString

    为了实现`DBObject`类的正确行为,开发者可能考虑了以下几点: 1. 在`equals()`方法中,对比`DBObject`的各个关键属性,如ID、名称或其他重要字段,判断它们是否相等。 2. 在`hashCode()`方法中,将这些关键属性的...

    Object类toString()和equals()方法使用解析

    在使用equals()方法时,我们需要注意以下几点: 1. 除了用a.equals(b)这个写法,我们也可以用b.equals(a)这样写,但是这两个写法的结果可能不同,因为equals()方法可能会被重写。 2. 在重写equals()方法时,我们...

    DAL.rar_equals

    在重写`equals()`方法时,有几点需要注意: 1. **一致性**:如果两个对象在一段时间内满足`equals()`条件,那么它们始终应满足该条件。 2. **对称性**:如果`a.equals(b)`为`true`,那么`b.equals(a)`也应为`true`...

    day004 面向对象3-继承、抽象和方法的重写.doc

    继承时需要注意以下几点: * 构造方法不能被继承 * 私有化成员不能直接通过子类对象直接访问,但是可以通过继承过来的公共方法间接访问 继承、抽象和方法重写是面向对象编程的三大要素,它们可以提高代码的复用性...

    关于equals()方法,jdk源码给出如下五点建议

    为了确保`equals()`方法的正确实现,JDK源码提供以下几点建议: 1. **一致性**:如果`a.equals(b)`为真,那么`b.equals(a)`也应该为真,即对称性。 2. **反射性**:对于任何非空引用值`x`,`x.equals(x)`应返回`...

    解析Java对象的equals()和hashCode()的使用

    在设计hashCode()函数时,需要注意以下几点: * 如果x.equals(y)“返回true”,那么x和y的hashCode()必须相等。 * 如果x.equals(y)“返回false”,那么x和y的hashCode()可能相等,也可能不等。 在设计这两个函数时...

    java equals函数用法详解

    使用 `equals()` 方法时,有几点需要注意: 1. **重写 `equals()`**:当你创建了一个自定义类并且这个类的实例需要根据其内容而不是引用来判断相等性时,你应该在类中重写 `equals()` 方法。同时,如果重写了 `...

    dotnet C# 实现 GetHashCode 的方法.rar

    // 重写Equals方法,确保与GetHashCode一致 public override bool Equals(object obj) { if (obj is MyCustomClass other) { return someValue == other.someValue && anotherValue == other.anotherValue; }...

    Java 常见问题 希望能给你带来帮助

    重写时需要注意以下几点: 1. **自反性**:对于任何非空引用值x,x.equals(x)应该返回true。 2. **对称性**:对于任何非空引用值x和y,当且仅当y.equals(x)返回true时,x.equals(y)也应该返回true。 3. **传递性**...

    注意对象的通用方法,类的设计陷阱.pdf

    - **重写equals和hashCode**:当自定义对象作为键存储在散列表中时,需要同时重写`equals()`和`hashCode()`方法,确保逻辑一致性。 - **toString()的重写**:提供更有意义的字符串表示,增强程序的可读性。 - **合理...

    JAVA中实现“相等”比较的深入分析.zip

    重写`equals()`时,有几点需要注意: 1. **一致性**:对于相同的对象,`equals()`方法必须始终返回`true`。 2. **对称性**:如果`a.equals(b)`为`true`,那么`b.equals(a)`也应该为`true`。 3. **传递性**:如果`a....

    java 面对对象编程.pdf.zip

    为什么重写 equals() 时必须重写 hashCode() 方法? String String、StringBuffer、StringBuilder 的区别? String 为什么是不可变的? 字符串拼接用“+” 还是 StringBuilder? String#equals() 和 Object#equals() ...

    Java解惑PPT6

    在"Java解惑PPT6"中,我们探讨了几个关键的Java特性,特别是关于不变性、equals()和hashCode()方法的约定以及它们在HashSet中的应用。 首先,让我们来看一下Library Puzzle(Puzzle 56)中的Big Problem。这个例子...

    Java Object 类高难度进阶版面试题集锦解析Java Object类高难度面试题及答案解析

    - 为了比较对象内容的相等性,我们需要重写equals()方法,确保遵循自反性、对称性、传递性、一致性原则,并确保与null的比较。 2. **hashCode() 方法**: - 该方法返回对象的哈希码,用于哈希表(如HashMap、...

    毕向东0805

    在面向对象编程中,多态性主要有以下几点重要性: 1. **代码复用**:多态性允许我们编写通用代码,适用于多种类型的对象,减少了代码冗余。 2. **灵活性**:多态性使程序能够适应未来可能的变化,增加了代码的可扩展...

    Java程序基础学习注意事项总结

    在学习过程中,注意以下几个关键点,能够帮助你更好地掌握Java语言。 首先,安装Java Development Kit (JDK)是开始Java编程的第一步。确保正确安装后,配置环境变量是至关重要的。在Windows系统中,你需要设置`JAVA...

    JAVA面试题汇总.pdf

    - equals() 方法通常需要被重写以适应具体的业务逻辑,如 String 类重写了 equals() 方法。 7. Java 中的访问修饰符: - public、protected、default(无修饰符)、private。 8. 接口(Interface)和抽象类...

Global site tag (gtag.js) - Google Analytics