Java Object equals() メソッド
Object equals() メソッドは、2つのオブジェクトが等しいかどうかを比較するために使用されます。
equals() メソッドは2つのオブジェクトを比較し、2つのオブジェクトの参照が同じオブジェクトを指しているかどうかを判断します。つまり、2つのオブジェクトがメモリ内の同じアドレスを指しているかどうかをチェックするだけです。
注意:サブクラスが equals() メソッドをオーバーライドした場合、オーバーライドが必要なのはhashCode() メソッドです。たとえば、String クラスは equals() メソッドをオーバーライドし、同時に hashCode() メソッドもオーバーライドしています。
構文
object.equals(Object obj)
パラメータ
obj- 比較するオブジェクト。
戻り値
2つのオブジェクトが等しい場合は true を返し、それ以外の場合は false を返します。
例
以下の例は equals() メソッドの使用法を示しています:
例
class サンプルTest {
public static void main(String[] args) {
//Object クラスでの equals() メソッドの使用
//2つのオブジェクトを作成
Object obj1 = new Object();
Object obj2 = new Object();
//obj1 と obj2 が等しいかどうかを判断
//異なるオブジェクトはメモリアドレスが異なるため、等しくなく、false を返します
System.out.println(obj1.equals(obj2)); // false
//obj1 を obj3 に代入
//String は equals() メソッドをオーバーライドしました
//オブジェクト参照のメモリアドレスが同じため、等しく、true を返します
Object obj3 = obj1;
System.out.println(obj1.equals(obj3)); // true
}
}
上記のプログラムの実行結果は次のとおりです:
false true
String クラスは equals() メソッドをオーバーライドし、2つの文字列が等しいかどうかを比較します:
例
class サンプルTest {
public static void main(String[] args) {
//String クラスでの equals() メソッドの使用
//2つのオブジェクトを作成
String obj1 = new String();
String obj2 = new String();
//obj1 と obj2 が等しいかどうかを判断
//初期化された2つのオブジェクトは両方とも null なので、等しく、true を返します
System.out.println(obj1.equals(obj2)); // true
//オブジェクトに値を代入
obj1 = "サンプル";
obj2 = "Google";
//obj1 と obj2 が等しいかどうかを判断
//2つの値が異なり、メモリアドレスも異なるため、等しくなく、false を返します
System.out.println(obj1.equals(obj2)); // false
}
}
上記のプログラムの実行結果は次のとおりです:
true false
その他の拡張
Java Object クラス