重寫hashcode和equals方法的原則

2021-08-25 15:52:23 字數 488 閱讀 2447

public class element 

public int hashcode()

public boolean equals(object o)

}

在equals方法中需要向下轉型,效率很低,所以先判斷hashcode方法可以提高效率.

附:其中(number)處是我們生成的你要計算在內的字段的**,生成規則如下:

如果欄位是boolean 計算為(f?1:0);

如果欄位是byte,char,short,int則計算為 (int)f;

如果欄位是long 計算為 (int)(f^(f>>32));

如果欄位是float 計算為 float.floattolongbits(f);

如果欄位是乙個引用物件,那麼直接呼叫物件的hashcode方法,如果需要判空,可以加上如果為空就返回0;

如果欄位是乙個陣列則需要遍歷所有元素,按上面幾種方法計算;

IntelliJ IDEA如何重寫Equals方法

intellij idea是一款不錯的開發軟體,我們經常在需要重寫equals方法,這裡給大家介紹一下如何重寫equals方法。在類中 處,右鍵單擊選擇generate 然後選擇equals and hashcode 這個選項 然後點選next 然後選擇equals方法需要的字段,可以通過shift...

equals和hashcode的重寫

下面給出例項 package xuming class student public student string name,int age,int classnum 重寫equals方法 public boolean equals object o 測試引用o是都為null if o null 測...

關於hashCode和equals重寫

規則 只要重寫equals,就必須重寫hashcode。用set儲存物件或者用物件作為map的鍵時,必須重寫hashcode。也就是說,當需要用物件的雜湊值來判斷物件是否相等時必須重寫hashcode。說明 string重寫了hashcode和equals方法,所以我們可以非常愉快地使用string...