Javaのequalsメソッドを使うには、どのようにすればいいですか?
Javaでは、オブジェクトのequals()メソッドを呼び出すことで、二つのオブジェクトが等しいかどうかを判定できます。equals()メソッドはObjectクラスのメソッドであり、全てのJavaクラスはObjectクラスを継承しているため、全てのオブジェクトがこのメソッドを呼び出すことができます。
equals() メソッドを使用する一般的な手順は次のとおりです:
- 第1に、オブジェクトがnullであるかどうかを判断し、nullの場合はfalseを返します。
- 2 つのオブジェクトが同じ参照かどうかを調べます。同じ参照であれば true を返します。
- 2つのオブジェクトの型が同じかどうかを判定し、型が異なればfalseを返す。
- 2つのオブジェクトの型が同一であれば、それぞれの性質を具体的なビジネスのニーズに合わせて比較して、性質が同一であればtrueを返却し、そうでなければfalseを返却します。
例えば、「Person」という名前のクラスがあり、そのクラスには「name」という属性があることを想定します。2つの「Person」オブジェクトの「name」属性が等しいかどうかを判定するために、次のような「equals()」メソッドを定義できます。
public class Person {
private String name;
// 构造方法、getter和setter等省略...
@Override
public boolean equals(Object obj) {
if (this == obj) { // 判断是否为同一引用
return true;
}
if (obj == null || getClass() != obj.getClass()) { // 判断是否为null或类型不同
return false;
}
Person other = (Person) obj; // 将obj转换为Person类型
return name.equals(other.name); // 判断name属性是否相等
}
}
Personオブジェクトのnameプロパティが等しいかどうかを比較するには、equals()メソッドを呼び出します。
Person person1 = new Person("Alice");
Person person2 = new Person("Alice");
System.out.println(person1.equals(person2)); // 输出:true
オブジェクトの等価性を判断するために独自に定義したクラスでequals()メソッドをオーバライドする必要がある場合は、通常2つの等価なオブジェクトが同じハッシュ値を持つことを保証するには、hashCode()メソッドもオーバライドする必要があります。