終於理解了比較equals爲何要重寫hashcode

打個比方,hashCode() 方法是比如是字典前面的目錄,有了這個目錄你查東西就會快的多,equals方法是比較的內容,就比如根據目錄查內容。同一個的內容天然要有惟一的目錄,因此hashCode和equals方法通常一塊兒實現。好比Student類的equals方法根據name,school,age重寫的,那麼hashCode也要根據這三個屬性去散列存儲的地址。hash表的數據結構是鏈表的數組,即每一個數組元素都是一個鏈表,鏈表中存的是hashCode值相等的元素,因此根據hashCode能快速的查找。Eclipse有自動生成的寫法,你能夠本身生成看看。可是hashCode的具體寫法要依據狀況去寫,沒固定寫法。數組

相關文章
相關標籤/搜索