JAVA基礎——圖解集合體系

   圖解集合,一目瞭然!
Collection(單列集合) Map(雙列集合)
           |--Collection(單列) 
                               |--List(有序,可重複)
                                        |--ArrayList
                                                 底層數據結構是數組,查詢快,增刪慢。 
                                                 線程不安全,效率高。 
                                         |--Vector
                                                 底層數據結構是數組,查詢快,增刪慢。 
                                                  線程安全,效率低。
                                         |--LinkedList        

                                                 底層數據結構是鏈表,查詢慢,增刪快。 
                                                 線程不安全,效率高。 
                              |--Set(可能無序,肯定唯一)
                                        |--HashSet
                                                 底層數據結構是哈希表。 
                                                 線程不安全,效率高。 

                                                 怎麼保證唯一性的呢? 
                                                 它依賴兩個方法:hashCode()和equals() 
                                                 順序: 
                                                           首先判斷hashCode()值是否相同。 
                                                           同:繼續走equals(),看返回值 
                                                                     如果true:就不添加到集合。 
                                                                     如果false:就添加到集合。 
                                                           不同:就添加到集合。 
                                        |--TreeSet
                                                 底層數據結構是二叉樹。 
                                                 線程不安全,效率高。 

                                                 怎麼保證唯一性的呢?是根據返回是否是0。 
                                                 怎麼保證排序的呢?兩種方式 
                                                           自然排序(元素具備比較性) 
                                                                     實現Comparable接口 
                                                           比較器排序(集合具備比較性) 
                                                                     實現Comparator接口
           |--Map(雙列 底層結構是針對鍵有效,跟值無關) 
                               |--HashMap
                                       底層數據結構是哈希表。 
                                       線程不安全,效率高。允許null鍵和值 

                                       怎麼保證唯一性的呢? 
                                       它依賴兩個方法:hashCode()和equals() 
                                       順序: 
                                                 首先判斷hashCode()值是否相同。 
                                                 同:繼續走equals(),看返回值 
                                                           如果true:就不添加到集合。 
                                                           如果false:就添加到集合。 
                                                 不同:就添加到集合。 
                               |--Hashtable
                                       底層數據結構是哈希表。 
                                        線程安全,效率低。不允許null鍵和值

                                       怎麼保證唯一性的呢? 
                                       它依賴兩個方法:hashCode()和equals() 
                                       順序: 
                                                 首先判斷hashCode()值是否相同。 
                                                 同:繼續走equals(),看返回值 
                                                           如果true:就不添加到集合。 
                                                           如果false:就添加到集合。 
                                                 不同:就添加到集合。 
                              |--TreeMap
                                       底層數據結構是二叉樹。 
                                       線程不安全,效率高。 

                                       怎麼保證唯一性的呢?是根據返回是否是0。 
                                       怎麼保證排序的呢?兩種方式 
                                                 自然排序(元素具備比較性) 
                                                           實現Comparable接口 
                                                 比較器排序(集合具備比較性) 
                                                           實現Comparator接口

Collection( 接口)單列集合
List( 接口)
有序,不唯一
Set( 接口)
可能無序,肯定唯一
Vector( )
ArrayList( )
LinkecList( )
HashSet(類)
TreeSet(類)
1、底層數據結構是數組,查詢快,增刪慢

2、線程安全,效率低(只有Vector是線程安全的)
1、底層數據結構是數組,查詢快,增刪慢

2、線程不安全,效率高
1、底層數據結構是鏈表,增刪快,查詢慢

2、線程不安全,效率高
1、底層數據結構是哈希表

2、通過重寫hashCode() equals() 保證唯一性


3、線程不安全,效率高

(如果元素相同不操作,所以不會覆蓋)
1、底層數據結構是二叉樹

2、通過判斷compareTocompare 方法的返回值是否爲 0來判斷是否重複

3、排序有兩種方案:
實現Comparable接口重寫 compareTo方法
實現Comparator接口重寫 compare方法

4、線程不安全,效率高

(如果元素相同不操作,所以不會覆蓋)
    

    
發佈了28 篇原創文章 · 獲贊 1 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章