第十八天 - 知識點總結

  • 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ā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Java8張圖 11、字符串不變性 12、equals()方法、hashCode()方法的區(qū)別 13、...
    Miley_MOJIE閱讀 3,912評論 0 11
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內(nèi)部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,823評論 18 399
  • Java集合框架 Java平臺提供了一個全新的集合框架?!凹峡蚣堋敝饕梢唤M用來操作對象的接口組成。不同接口描述...
    小石38閱讀 460評論 0 0
  • 一、基本數(shù)據(jù)類型 注釋 單行注釋:// 區(qū)域注釋:/* */ 文檔注釋:/** */ 數(shù)值 對于byte類型而言...
    龍貓小爺閱讀 4,468評論 0 16
  • 即將來臨的獨立日 那些結束校園 踏入社會的人兒們啊 兵荒馬亂 各自為陣 有的人 慌里慌張的找著 有的人 樂此不疲的...
    張梓夕閱讀 229評論 0 2

友情鏈接更多精彩內(nèi)容