Java中的HashSet和TreeSet

來源:互聯網
上載者:User

標籤:

 

1:Set集合(理解)(1)Set集合的特點無序,唯一(2)HashSet集合(掌握)A:底層資料結構是雜湊表(是一個元素為鏈表的數組)B:雜湊表底層依賴兩個方法:hashCode()和equals()  執行順序:首先比較雜湊值是否相同相同:繼續執行equals()方法返回true:元素重複了,不添加返回false:直接把元素添加到集合不同:就直接把元素添加到集合C:如何保證元素唯一性的呢?由hashCode()和equals()保證的D:開發的時候,代碼非常的簡單,自動產生即可。E:HashSet儲存字串並遍曆F:HashSet儲存自訂對象並遍曆(對象的成員變數值相同即為同一個元素)(3)TreeSet集合A:底層資料結構是紅/黑樹狀結構(是一個自平衡的二叉樹)B:保證元素的排序方式a:自然排序(這種排序方式可以理解成元素本身具備比較性)讓元素所屬的類實現Comparable介面b:比較子排序(這種排序可以理解成集合類具備比較性)讓集合構造方法接收Comparator的實作類別對象,實現方式可以用匿名類來實現。C:把我們講過的代碼看一遍即可(4)案例:A:擷取無重複的隨機數B:鍵盤錄入學生按照總分從高到底輸出2:Collection集合總結(掌握)Collection|--List有序,可重複|--ArrayList底層資料結構是數組,查詢快,增刪慢。線程不安全,效率高|--Vector底層資料結構是數組,查詢快,增刪慢。安全執行緒,效率低|--LinkedList底層資料結構是鏈表,查詢慢,增刪快。線程不安全,效率高|--Set無序,唯一|--HashSet底層資料結構是雜湊表。如何保證元素唯一性的呢?依賴兩個方法:hashCode()和equals()開發中自動產生這兩個方法即可|--LinkedHashSet底層資料結構是鏈表和雜湊表由鏈表保證元素有序由雜湊表保證元素唯一|--TreeSet底層資料結構是紅/黑樹狀結構。如何保證元素排序的呢?自然排序比較子排序如何保證元素唯一性的呢?根據比較的傳回值是否是0來決定3:針對Collection集合我們到底使用誰呢?(掌握)唯一嗎?是:Set排序嗎?是:TreeSet否:HashSet如果你知道是Set,但是不知道是哪個Set,就用HashSet。否:List要安全嗎?是:Vector否:ArrayList或者LinkedList查詢多:ArrayList增刪多:LinkedList如果你知道是List,但是不知道是哪個List,就用ArrayList。如果你知道是Collection集合,但是不知道使用誰,就用ArrayList。如果你知道用集合,就用ArrayList。4:在集合中常見的資料結構(掌握)ArrayXxx:底層資料結構是數組,查詢快,增刪慢LinkedXxx:底層資料結構是鏈表,查詢慢,增刪快HashXxx:底層資料結構是雜湊表。依賴兩個方法:hashCode()和equals()TreeXxx:底層資料結構是二叉樹。兩種方式排序:自然排序和比較子排序

  

Java中的HashSet和TreeSet

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.