2023-05-18
郑州 青岛
Java中的equals()方法是用来比较两个对象是否相等的方法。默认情况下,它比较的是两个对象的内存地址。但是,我们通常希望比较的是对象的属性值是否相等。
比较两个对象是否相等时,需要重写equals()方法。一般来说,我们需要比较对象的属性值是否相等,因此我们需要在equals()方法中使用对象的属性来比较。以下是一个例子:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age &&
Objects.equals(name, person.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
在这个例子中,我们重写了equals()方法,使用对象的属性name和age进行比较,如果两个对象的name和age都相等,则认为它们相等。同时我们也重写了hashCode()方法,以保证在使用哈希表等需要对象hashCode的场景下能够正常工作。
当我们使用自定义类作为HashMap的key时,如果没有重写equals()方法,会使用默认的比较方式,比较的是对象的内存地址,这样就无法正确比较对象是否相等了。因此在使用自定义类时,一定要注意重写equals()方法。
上一篇:java常用关键字有哪些
下一篇:html教程之p标签用法
开班时间:2021-04-12(深圳)
开班盛况开班时间:2021-05-17(北京)
开班盛况开班时间:2021-03-22(杭州)
开班盛况开班时间:2021-04-26(北京)
开班盛况开班时间:2021-05-10(北京)
开班盛况开班时间:2021-02-22(北京)
开班盛况开班时间:2021-07-12(北京)
预约报名开班时间:2020-09-21(上海)
开班盛况开班时间:2021-07-12(北京)
预约报名开班时间:2019-07-22(北京)
开班盛况Copyright 2011-2023 北京千锋互联科技有限公司 .All Right 京ICP备12003911号-5 京公网安备 11010802035720号