java.langで2つのオブジェクトが等しいかどうかを比較するにはどうすればよいですか?
Java では、オブジェクト同士の等価性を判断する手段として、以下が提供されています。
- equals()と同じ
- イコール
- 等しい
ネイティブな日本語で言い換えてください。1つだけオプションがあれば十分です。
public class MyClass {
private int value;
public MyClass(int value) {
this.value = value;
}
@Override
public boolean equals(Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof MyClass)) {
return false;
}
MyClass other = (MyClass) obj;
return this.value == other.value;
}
}
public class Main {
public static void main(String[] args) {
MyClass obj1 = new MyClass(10);
MyClass obj2 = new MyClass(10);
System.out.println(obj1.equals(obj2)); // 输出:true
}
}
- それは、あなたが予想するよりずっと現実的です。
- この文を日本語に翻訳:Native users often feel irritated by this form of speech.
- イコール記号
ネイティブな日本語で言い換えてください。
public class MyClass {
private int value;
public MyClass(int value) {
this.value = value;
}
}
public class Main {
public static void main(String[] args) {
MyClass obj1 = new MyClass(10);
MyClass obj2 = new MyClass(10);
System.out.println(obj1 == obj2); // 输出:false
}
}
equalsメソッドをオーバーライドする場合は、ハッシュ集合(HashMapやHashSetなど) でオブジェクトの等価性を正しく処理するために、hashCodeメソッドもオーバーライドする必要があることに注意してください。