Java Collection、Map集合總結

阿豪聊乾貨發表於2016-05-02

1.Java中的Collection集合總結

Collection

  |---List(儲存有序,可重複)

    |---ArrayList

      底層資料結構是陣列,查詢,增刪慢。

      執行緒不安全、效率高

    |---Vector

      底層資料結構是陣列,查詢快,增刪慢。

      執行緒安全、效率低。

    |---LinkedList

      底層資料結構是連結串列,查詢慢,增刪快。

      執行緒不安全,效率高

  |---Set(儲存無序,元素唯一)

    |---HashSet

      底層資料結構是雜湊表。

      依賴hashCode()和equals()兩個方法進行保證元素唯一性,開發中使用開發工具自動生成就好。

      |---LinkedHashSet

        底層資料結構是連結串列和雜湊表

        連結串列保證元素有序

        雜湊表保證元素唯一

    |---TreeSet

      底層資料結構是紅黑樹。

      如何保證元素排序呢?自然排序或者比較器排序。

      如何保證元素唯一呢?根據比較結果是否為0來進行判斷。

 

Map

  |---HashMap

    底層是陣列連結串列,使用hash演算法來保證元素儲存位置

      |---LinkedHashMap

  |---TreeMap

    底層是紅黑樹實現。

 

集合中常見的資料結構總結

  ArrayXxx:底層資料結構是陣列,查詢快,增刪慢
  LinkedXxx:底層資料結構是連結串列,查詢慢,增刪快
  HashXxx:底層資料結構是雜湊表。依賴兩個方法:hashCode()和equals()
  TreeXxx:底層資料結構是二叉樹。兩種方式排序:自然排序和比較器排序

 

Collection和Collections的區別?

  1.Collection 是單列集合的頂層介面,有兩個子介面List和Set

  2.Collections 是針對集合進行操作的工具類,可以對集合進行排序和查詢等

相關文章