Set容器

Set(不能放重復(fù)元素) 用foreach或者迭代器進(jìn)行遍歷

  • HashSet(底層HashMap實(shí)現(xiàn))
  • 用hashcode和equals方法比較兩個(gè)對象是否相等
    如果哈希值不相等,那么一定是不同對象,如果相等有可能不是同一對象,這時(shí)候還要執(zhí)行equals方法,所以要想使用HashSet必須要重寫hashcode和equals方法
  • hashcode()->相同的對象需要產(chǎn)生相同hash碼,不同的對象盡量產(chǎn)生不同的hash碼
  • equals() ->比較兩個(gè)對象的規(guī)則(先比引用,再比類型,再比屬性),一般使用eclipse自動生成,不用自己寫。
    • 自反性(自己和自己比一定為true)
    • 對稱性(若a==b 為true,那么b==a為true)
    • 傳遞性(若a==b 為true, b=c,那么a==c為true)
    • 一致性(不管多少次執(zhí)行,只返回相同的結(jié)果)
  • java堆空間采用hash算法
    如果兩個(gè)對象的hash碼相等(沖突),采用桶結(jié)構(gòu),先用hash碼找到地址, 然后用equals方法在桶中挨個(gè)比對。
  • hash函數(shù)最有名的兩個(gè)是MD5碼和SHA1
  • TreeSet(底層用排序樹實(shí)現(xiàn))去重+排序
  • 因?yàn)樾枰判蛩栽谑褂脮r(shí)對象需要實(shí)現(xiàn)Comparable接口
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,652評論 18 399
  • Java8張圖 11、字符串不變性 12、equals()方法、hashCode()方法的區(qū)別 13、...
    Miley_MOJIE閱讀 3,895評論 0 11
  • 一、基本數(shù)據(jù)類型 注釋 單行注釋:// 區(qū)域注釋:/* */ 文檔注釋:/** */ 數(shù)值 對于byte類型而言...
    龍貓小爺閱讀 4,443評論 0 16
  • java筆記第一天 == 和 equals ==比較的比較的是兩個(gè)變量的值是否相等,對于引用型變量表示的是兩個(gè)變量...
    jmychou閱讀 1,645評論 0 3
  • 史蒂夫.喬布斯(Steve Jobs)為創(chuàng)新下的定義是:「把不同的要素結(jié)合起來。如果你有比別人更多的體驗(yàn),或者對自...
    王者之聲閱讀 1,285評論 0 2

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