Java で Object クラスの equals() 関数を使用して 2 つのオブジェクトが等しいかどうかを比較する方法
Java では、equals() 関数は 2 つのオブジェクトが等しいかどうかを比較するために使用されるメソッドです。すべての Java クラスは Object クラスを継承するため、equals() 関数を使用してすべてのオブジェクトを比較できます。ただし、2 つのオブジェクトが等しいかどうかを正しく比較するには、カスタム クラスの equals() メソッドをオーバーライドする必要があります。
Object クラスのquals() メソッドのデフォルトの実装では、比較に参照の等価性が使用されます。つまり、equals() メソッドは、2 つのオブジェクトが同じメモリ アドレスを参照している場合にのみ true を返します。これは、ほとんどの場合、望ましい動作ではありません。通常、2 つのオブジェクトの内容が等しいかどうかを比較する必要があります。
この目標を達成するには、カスタム クラスの 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 obj) { // 检查传入的对象是否为null if (obj == null) { return false; } // 检查传入的对象是否是Person类的实例 if (!(obj instanceof Person)) { return false; } // 比较两个对象的属性是否相等 Person other = (Person) obj; return this.name.equals(other.name) && this.age == other.age; } }
上の例では、パーソン クラスの等しいをオーバーライドします。 () 方法。まず、受信オブジェクトが null かどうかを確認し、null であれば直接 false を返します。次に、instanceof 演算子を使用して、受信オブジェクトが Person クラスのインスタンスであるかどうかを確認し、そうでない場合は直接 false を返します。最後に、2 つのオブジェクトの name プロパティと age プロパティを比較して等しいかどうかを確認し、等しい場合は true を返し、等しくない場合は false を返します。
次に、equals() メソッドを使用して、2 つの Person オブジェクトが等しいかどうかを比較できます。
public class Main { public static void main(String[] args) { Person person1 = new Person("Alice", 25); Person person2 = new Person("Bob", 30); Person person3 = new Person("Alice", 25); System.out.println(person1.equals(person2)); // false System.out.println(person1.equals(person3)); // true } }
上の例では、3 つの Person オブジェクトを作成しました。 equals() メソッドを呼び出して person1 と person2 を比較すると、名前と年齢の属性が等しくないため、結果は false になります。 equals() メソッドを呼び出して person1 と person3 を比較すると、名前と年齢の属性が等しいため、結果は true になります。
上記の例を通じて、Object クラスの equals() メソッドを使用して 2 つのオブジェクトが等しいかどうかを比較する方法を確認できます。 equals() メソッドをオーバーライドする場合、実際のニーズを満たすために、オブジェクトがプロパティに基づいて等しいかどうかを判断できます。
以上がJavaのObjectクラスのequals()関数を使用して2つのオブジェクトが等しいかどうかを比較する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。