美文网首页
Java 比较相等

Java 比较相等

作者: 07120665a058 | 来源:发表于2018-09-03 12:04 被阅读9次
  • Java Equals() 特性
1、自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。
2、对称性:对于任何非空引用值 x 和 y,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 才应返回 true。
3、传递性:对于任何非空引用值 x、y 和 z,如果 x.equals(y) 返回 true,并且 y.equals(z) 返回 true,那么 x.equals(z) 应返回 true。
4、一致性:对于任何非空引用值 x 和 y,多次调用 x.equals(y) 始终返回 true 或始终返回 false,前提是对象上 equals 比较中所用的信息没有被修改。
5、对于任何非空引用值 x,x.equals(null) 都应返回 false。
  • Equals() 和 == 的区别
equals() 比较值相等
== 比较值和引用都相等
但 Object.equals() 比较的是引用,所有继承了 Object 的对象,如果没有重写equals() 方法,也是比较引用
一般重写equals() 是为了只比较值是否相等
如果 Identify ,则一定Equality
如果Equality,则hashcode一定相等
  • 重写Equals方法
@Override
public boolean equals(Object obj) {
    if (this == obj) return true;
    if (obj == null || getClass() != obj.getClass()) return false;
   
    OtherClass klass = (OtherClass) obj; 
    return name.equals(klass.name);
}
  • 重写HashCode方法
@Override
public int hashCode() {
   return Objects.hash(name, yearOfBirth);
}

相关文章

  • Java 比较相等

    Java Equals() 特性 Equals() 和 == 的区别 重写Equals方法 重写HashCode方法

  • Java中的相等比较

    说一说java中的相等比较。 在日本做开发,遇到很多转职Java的小白,常常搞不懂Java中的相等的比较怎么用,所...

  • Chapter 30《Object Equality》

    Scala中的相等性 Scala的相等性比较和Java中的不同,在Java中使用==表示两个对象的引用相等性,使用...

  • 浮点数的比较&初识String

    小心使用浮点数进行比较 浮点数没有绝对的相等,只有近似的相等。Java中只有整数才有绝对的相等。 例如: 结果:t...

  • Java中 "equals"和"=

    1.前言 在Java中,需要比较对象是否相等。则需要用到“equals”和“==”。一般来说比较基础数据类型值相等...

  • Java 第一节课学习

    1.java中==和equals和hashCode的区别 == 是判断相等运算符,用于比较基本数据类型的值是否相等...

  • android面试题及进阶拓展(附答案)(下)

    java相关基础知识 1、java中==和equals和hashCode的区别 基本数据类型的==比较的值相等. ...

  • 相等与比较

    JavaScript 秘密花园为什么 【】 == 【】 为 false,【】 == !【】 为 true Java...

  • 字符串比较

    Swift提供了3种方式去比较文本值:比较字符串和字符相等,比较前缀相等,比较后缀相等。 比较字符串和字符相等...

  • Java字符串的比较!!常用的3种方法详解!

    字符串比较是常见的操作,包括比较相等、比较大小、比较前缀和后缀串等。 在Java中,比较字符串的常用方法有...

网友评论

      本文标题:Java 比较相等

      本文链接:https://www.haomeiwen.com/subject/mtubwftx.html