前言:Java 对象如果要比较是否相等,则需要重写 equals 方法,同时重写 hashCode 方法,而且 hashCode 方法里面使用质数 31。接下来看看各种为什么。 一、需求: 对比两个对象是否相等。对于下面的 User 对象,只需姓名和年龄相等则认为是同一个对象。 二、解决方案: 需要
@Overridepublicbooleanequals(Object obj) {if(this==obj){returntrue;//地址相等}if(obj ==null){returnfalse;//非空性:对于任意非空引用x,x.equals(null)应该返回false。}if(objinstanceofUser){ User other=(User) obj;//需要比较的字段相等,则这两个对象相等if(equalsStr(this.name, other.name)&& ...
java比较两个对象,可以通过重写equals()实现。1.比较对象时, ==比较的是地址,而equals()比较的是对象内容2.重写equals()方法必须重写hashCode() 示例代码...()和hashCode()比较对象:"); if(person1.equals(person2)) { System.out.println("person1和person2是同一个 hashcode和equals的作用 对象所以对象的...
1publicclassTestAddress {23publicstaticvoidmain(String[] args) {4Address address1 =newAddress("广东","广州");5Address address2 =newAddress("广东", "广州");67System.out.println(address1 == address2);//false8System.out.println(address1.equals(address2));//false9System.out.println(address1...