1. 程式人生 > >hashCode()與equals()介紹

hashCode()與equals()介紹

hashCode()與equals()方法均用於比較兩個物件是否是同一個物件,我們知道java中所有的類都是Object的子類,所以我們可以直接呼叫Object中的hashCode()、equals()方法進行比較,也可以在需要比較的類中重寫這兩個方法。
Object類中equals()方法比對的是兩個物件的記憶體地址,如果兩個物件的記憶體地址一致,那麼返回值就為true。hashCode()方法返回的是一個雜湊碼,相同的物件的雜湊碼一定相同,但不同的物件雜湊碼也有可能相同,因此通過Object類中的hashCode()方法對兩個物件進行比較不一定準確。我們知道在hashSet的集合中是不允許儲存相同的物件,hashSet應用的對比機制就是將要放入集合的物件與已經存在的物件先進行hashCode()的對比,如果不相等那麼這兩個物件就一定不相等,否則再進行equals()方法的比較,若還是相等,那麼即可判斷二者是同一個物件。
參考文章,來自部落格園:

https://www.cnblogs.com/keyi/p/7119825.html