目錄
什麼時候會遇到重寫hashCode,equals方法?
個人思考:對自己自定義的類,重寫hashCode,和equals方法,有一個非常好的作用,就是之後如果對數據庫進行相關的操作的時候,就不會存儲進去一樣的對象了。
以後只要是HashSet存儲自定義類型的元素,那麼就必須要重寫hashCode與equals方法。以保證該同值的對象只出現一次。
Set接口:
Set集合存儲元素不重複的原理:
例子:
HashSet集合:
例子:
哈希值:
例子:
HashSet集合存儲數據的結構(哈希表)
HashSet存儲自定義類型元素:
之前使用到的系統給到的那些類,其中一些本身就是重寫了HashSet方法的。
例子:
沒有重寫的時候,equals比較的是兩個對象的地址值,(String之類的equals之類的都是被它所重寫過的。)
alt + instert 快捷鍵,添加equals 和 hashCode方法。
LinkedHashSet集合
哈希表(數組+鏈表/紅黑樹)+多了一條鏈表 記錄元素的存儲順序。
具有可預知迭代順序的Set接口的哈希表和鏈接列表實現。
例子: