JAVA集合

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:底層數據結構是二叉樹。兩種方式排序:自然排序和比較器排序

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章