- set里面的元素都是去重復的,但是這種重復的判定是有區(qū)別的:
- HashSet 在HashSet中判斷兩個元素是否是同一的元素,首先是比較兩個元素的hash碼是否相等,如果hash碼不一樣,則兩個元素必定不相同,如果hash碼一樣,就判定equals函數(shù)的結果。 所以如果要用HashSet裝對象,這個對象就應該重寫hashCode() 和 equals(Object obj)這兩個函數(shù)。 否則就還是沿用了Object類中的這兩種方法,即equals函數(shù)只比較引用是否相等。
- TreeSet 是要進行排序的,所以TreeSet要裝的對象是必須實現(xiàn)了Comparable接口并重寫了compareTo()函數(shù)。 所以在compareTo()函數(shù)中既完成了排序的規(guī)則,也完成了兩個元素是否相等的判斷。
- 哈希存儲 - 只要能設計出一個好的哈希函數(shù)就是存取性能都特別好的存儲方案
好的哈希函數(shù)應該是讓相同的對象產(chǎn)生相同的hash碼,讓不同的對象盡可能產(chǎn)生不同的hash碼
哈希存儲或者哈希函數(shù)有的地方稱之為散列存儲或者散列函數(shù)
如果要使用HashSet 那么一定要重寫兩個方法:- hashCode() --> 讓相同的對象產(chǎn)生相同的hash碼,讓不同的對象盡可能產(chǎn)生不同的hash碼
- equals() --> 定義比較兩個對象的規(guī)則(引用、類型、屬性)
- 自反性
- 對稱性
- 傳遞性
第十八天 - 知識點總結
最后編輯于 :
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
相關閱讀更多精彩內(nèi)容
- 一、基本數(shù)據(jù)類型 注釋 單行注釋:// 區(qū)域注釋:/* */ 文檔注釋:/** */ 數(shù)值 對于byte類型而言...