標籤:
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