天天看點

Java Collection、Map集合總結

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 是針對集合進行操作的工具類,可以對集合進行排序和查找等