JavaでhashCodeメソッドを上書きする方法は何ですか?

hashCode()メソッドを再度記述する必要がある場合は、次のステップに従う必要があります:

  1. ハッシュコードを取得する
  2. 整数
  3. ハッシュコード()
  4. 同値性を確認する
  5. ハッシュコード()
  6. 物品 (ぶっぴん)
  7. ハッシュ関数

hashCode()メソッドを再構築する方法を示す例を以下に示します。

public class Person {
    private String name;
    private int age;
    
    // 构造函数和其他方法...
    
    // 重写hashCode()方法
    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }
    
    // 重写equals()方法
    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        
        if (obj == null || getClass() != obj.getClass()) {
            return false;
        }
        
        Person person = (Person) obj;
        return age == person.age && Objects.equals(name, person.name);
    }
}

例えば、hashCode()メソッドでは、Objects.hash()メソッドを使用してハッシュコードを計算しています。このメソッドは、渡されたパラメータに基づいてハッシュコードを自動的に計算します。この例では、名前と年齢のプロパティを使用してハッシュコードを計算し、これらのプロパティはequals()メソッドでも使用されています。

hashCode()メソッドをオーバーライドする際には、必ずequals()メソッドもオーバーライドすることが重要です。これにより、オブジェクトがハッシュセット(例:HashSet)内で適切に動作することが保証されます。

bannerAds