java之集合框架總結-畢業生必看

M_liqian發表於2019-04-12

                                                       集合框架

List、Set、Map的區別

        Map和Collection是所有集合的父介面,collecton是List和Set的父介面

 

List(可儲存重複物件;是一個有序集合,儲存了每一個元素的插入順序)

         ArrayList:陣列(查詢快,增刪慢,執行緒不安全)

         Vector:陣列(查詢快,增刪慢,執行緒安全,)

         LinkedList:連結串列(查詢慢,增刪快,執行緒不安全)

Set(不允許重複物件,只允許一個null元素)

         HashSet(無序,唯一):雜湊表

         LinkedHashSet:連結串列和雜湊表。連結串列保證元素的排序,雜湊表保證元素的唯一性

         TreeSet(有序,唯一):紅黑樹(自平衡的排序二叉樹)

Map(以鍵值對的形式進行資料儲存,鍵不允許重複,允許null作為Map的鍵和值)

           HashMap:基於雜湊表的Map介面實現(雜湊表對鍵進行雜湊,Map介面即對映表存 放鍵值對)

           LinkedHashMap:在hashMap的基礎上新增了連結串列資料結構

           HashTabl:雜湊表

          TreeMap:紅黑樹   

HashMap和HashTable的區別

          HashMap是非執行緒安全,HashTable是執行緒安全的

          HashMap比HashTable效率高(HashTable基本被淘汰)

          HashMap允許Null作為key,HashTable不允許Null作為Key

 

HashMap和TreeMap如何選取

           插入、刪除和定位元素操作,HashMap是最好的選擇,假如需要對一個有序的Key集合進行遍歷,TreeMap是更好的選擇。

List、Map、Set、什麼時候用?

          想讓元素按照插入的次序進行有序儲存,使用List

          想要保證元素的唯一性,使用Set

         想要使用鍵值對的形式進行資料儲存,使用Map

concurrentHashMap和HashMap的區別

             concurrentHashMap對整個桶數進行了分割分段,然後在每個分段上都用了lock鎖進行保護,相對於HashTable的synchronized鎖               的精度更精細了一些,併發效能更好。HashMap沒有鎖機制,不是執行緒安全的

           (JDK1.8之後ConcurrentHashMap啟用了一種全新的方式實現,利用CAS演算法)

             HashMap的鍵值對允許有Null,但是ConCurrentHashMap都不允許

 

Collection 和 Collections的區別。

            Collection是集合類的父介面,繼承與他的介面主要有Set和List.

             Collections是針對集合類的一個幫助類,他提供一系列靜態方法實現對各種集合    的搜尋、排序、執行緒安全化等操作。

 

comparable 和 comparator的區別?

              comparable介面實際上是出自java.lang包 它有一個 compareTo(Object obj)方法用來排 序

              comparator介面實際上是出自 java.util 包它有一個compare(Object obj1, Object obj2)方 法用

相關文章