1. 程式人生 > 實用技巧 >equals()方法和hashcode()方法!

equals()方法和hashcode()方法!

為什麼要重寫equals和hashcode?

記住:
Object類中的equals方法預設比較的是物件的地址,因為只有是相同的地址才會相等(x == y),如果沒有重寫equals方法,那麼預設就是比較的是地址。
而無論何時如果equals方法被重寫那麼都是有必要去重寫hashCode方法,這個是因為為了維持hashCode的一般約定(general contract),相同的物件必須要有相同的hashCode值。
通過HashMap原始碼可知:

計算index時,覆蓋操作會失敗:
在這裡插入圖片描述