java集合總結

一、集合的基本概念總結

  • Collection(單列集合)

    • List(有序,可重複)
    • ArrayList
      • 底層數據結構爲數組,查詢快,增刪慢,線程不安全,效率高
    • Vector
      • 底層數據結構爲數組,查詢快,增刪慢,線程安全,效率低
    • LinkedList
      • 底層數據結構爲鏈表,查詢慢,增刪快,線程不安全,效率高
    • Set(無序,唯一)
    • HashSet
      • 底層數據結構爲哈希表
      • 哈希表依賴兩個方法:hashCode()和equals()
      • 執行順序
      • 首先判斷hashCode()的值是否相同
        • 是:執行equals()方法,看其返回值
        • 是true:說明元素重複,不添加
        • 是false:直接添加到集合
        • 否:直接添加
      • 最終:自動生成equals()和hashCode()方法在目標類當中
      • LinkedHashSet
      • 底層數據結構由鏈表和哈希表組成
      • 鏈表保證元素有序
      • 哈希表保證元素唯一
    • TreeSet
      • 底層數據結構是紅黑樹(紅黑樹是一種自平衡的二叉樹)
      • 如何保證村的元素唯一性呢?
      • 根據比較的返回值是否爲零來判斷
      • 如何保證元素的排序呢?
      • 自然排序(元素具備比較性):讓元素所屬的類實現Comparable接口
      • 比較器排序(集合具備比較性):讓集合接收一個Comparator的實現類對象
  • Map(雙列集合)

    • Map集合的數據結構只針對鍵有效,與值無關;
    • 存儲的是鍵值對的元素,鍵唯一,值可重複
    • HashMap
    • 底層數據結構爲哈希表,線程不安全,效率高
    • 哈希表依賴兩個方法:hashCode()和equals()
    • 執行順序
      • 首先判斷hashCode()的值是否相同
      • 是:執行equals()方法,看其返回值
        • 是true:說明元素重複,不添加
        • 是false:直接添加到集合
      • 否:直接添加
    • 最終:自動生成equals()和hashCode()方法在目標類當中
    • LinkedHashMap
      • 底層數據結構由鏈表和哈希表組成
      • 鏈表保證元素有序
      • 哈希表保證元素唯一
    • Hashtable
    • 底層數據結構爲哈希表,線程安全,效率低
    • 哈希表依賴兩個方法:hashCode()和equals()
    • 執行順序
      • 首先判斷hashCode()的值是否相同
      • 是:執行equals()方法,看其返回值
        • 是true:說明元素重複,不添加
        • 是false:直接添加到集合
      • 否:直接添加
    • 最終:自動生成equals()和hashCode()方法在目標類當中
    • TreeMap
    • 底層數據結構是紅黑樹(紅黑樹是一種自平衡的二叉樹)
    • 如何保證村的元素唯一性呢?
      • 根據比較的返回值是否爲零來判斷
    • 如何保證元素的排序呢?
      • 自然排序(元素具備比較性):讓元素所屬的類實現Comparable接口
      • 比較器排序(集合具備比較性):讓集合接收一個Comparator的實現類對象

二、到底使用那種集合

  • 看需求
  • 是否是鍵值對對象形式:
    • 是:Map
    • 鍵是否需要排序
      • 是:TreeMap
      • 否:HashMap
    • 不知道使用 HashMap
    • 否:Collection
    • 元素是否唯一
      • 是 Set
      • 元素是否需要排序:
        • 是:TreeSet
        • 否:HashSet
      • 不知道使用HashSet
      • 否 List
      • 要安全嗎:
        • 要:Vector
        • 不要:ArrayList或者LinkedList
        • 增刪多:LinkedList
        • 查詢多:ArrayList
        • 不知道,使用ArrayList
    • 不知道,使用ArrayList

三、集合常見常見方法及遍歷方式

  • Collection:
    • add()
    • remove()
    • contains()
    • iterator()
    • size()
    • 遍歷
      • 增強for
      • 迭代器
    • List
      • get()
      • 遍歷:
      • 普通for
    • Set
  • Map
    • put()
    • remove()
    • containskey(),containsValue()
    • keySet()
    • get()
    • value()
    • entrySet()
    • size()
    • 遍歷:
      • 根據鍵找值
      • 根據鍵值對對象分別找鍵和值

四.尾巴

1.如有錯誤歡迎大家指出,我會及時更正,有什麼不懂也可以留言提問,互相交流嗎。
2.也許大家覺得這沒什麼,但是我會認真對待,把它當成我的筆記、心得、這樣才能提升自己。

歡迎訪問我的csdn博客

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