溫馨提示×

java怎么重寫hashcode方法

小億
150
2024-01-13 02:44:26
欄目: 編程語言

要重寫hashCode()方法,需要遵循以下幾個步驟:

  1. 在類中添加hashCode()方法的聲明,返回類型為int。
  2. hashCode()方法中計算一個唯一的整數(shù)值,用于表示對象的哈希碼??梢愿鶕?jù)對象中的屬性值計算哈希碼。
  3. 確保如果兩個對象在equals()方法中被判定為相等,那么它們的hashCode()方法也應該返回相等的哈希碼。
  4. 如果需要,可以使用Java中的Objects類中的hash()方法來計算哈希碼。

下面是一個示例,展示了如何重寫hashCode()方法:

public class Person {
    private String name;
    private int age;
    
    // 構(gòu)造函數(shù)和其他方法...
    
    // 重寫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()方法來計算哈希碼。這個方法會根據(jù)傳入的參數(shù)自動計算哈希碼。在這個例子中,我們使用了nameage屬性來計算哈希碼,這兩個屬性也在equals()方法中被使用。

注意:重寫hashCode()方法的同時,一定要重寫equals()方法,以確保對象在哈希集合(如HashSet)中的正確行為。

0

<tt id="ggyg6"></tt>