關於java中hashCode與equals爲什麼一起重寫的問題

java中當hashCode與equals的一同重寫主要是爲了提高效率,出現在集合中。我們都知道hashSet中是不能 出現相同的元素的,那麼實現它的這個方法就是通過equals方法進行比較,然而這樣的效率並不高,因爲假如我們存入很多元素,而在插入元素時將有很多次的比較,這顯然效率不高。而有了hashCode之後,元素在進行比較時先看看由hashCode計算出來的地址中是否有元素,沒有則直接存入,有則進行比較之後再存入!這樣只要比較最多兩次,效率提高!

還有就是hashCode相同的equals一定相同,equals相同的hashCode不一定相同。中的2個方法比較的都是Object地址值是否相同,所以元素不會出現在同一地址,而重寫後的則不一定。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章