java基礎使用的集合大總結

趕星而至發表於2020-12-29

Java集合大總結

java集合框架簡圖(API關係圖):

虛線框表示介面,實線框表示類.

 

 

特點和使用總結:

Collection:

  • 單列單值.

List:

  • 有序(查詢順序和插入順序一致),有下標(索引),元素允許重複.

ArrayList:

  • 地測是動態陣列資料結構,在記憶體中挨著連續開闢空間,查詢快,增刪慢.

LinkedList:

  • 底層是資料連結串列結構,在記憶體中不挨著,不連續開闢空間,查詢慢,增刪快.

Set/HashSet:

  • 無序(查詢順序和插入順序不一致),無下標(索引),元素不允許重複,底層是Hash表

TreeSet:

  • 無序,沒有索引,不允許重複,可以對元素進行排序,底層是紅黑樹

Map/HashMap:

  • 雙列雙值,無序(查詢順序和插入順序不一致),誤下標(索引),鍵不允許重複,值允許重複,鍵值是一一對應的,叫鍵值對,java中叫做Entry物件,底層是Hash表資料結構

TreeMap:

  • 可以對鍵進行排序,底層是紅黑樹

實際開發中如何選擇用哪一種集合?

  • 根據集合特點來選擇,實際開發中多用ArrayList,HashSet,HashMap

使用總結:

  • HashSet,HashMap如果要求屬性相同才認為是同一個物件,那麼要哦重寫HashCode和equals方法

  • TreeSet,TreeMap如果儲存自定義型別,要指定排序規則.要麼使用自然排序,要麼使用比較器排序

Collection API總結:

 

 

Map API總結:

 

 

集合遍歷總結:

  • List集合:

    • 通過toArray方法把集合轉換為陣列

    • 普通for迴圈結婚get(索引)方法

    • forEach/迭代器

  • Set集合:

    • 通過toArray將集合轉換為陣列

    • forEach/迭代器

  • Map集合:

    • 拿到每一個鍵,KeySet,對每一個鍵進行遍歷,通過建呼叫get(鍵)找到值

    • 拿到每一個Entry物件,EntrySet,通過遍歷Entry物件獲取每一個鍵和值

    • 實際中該用哪種遍歷集合呢?

      拿到每一個Entry物件

      Set<Map.Entry<String, Integer>> entrySet = map.entrySet(); for(Map.Entry<String, Integer> en : entrySet) { System.out.println(en.getKey() + "=" + en.getValue()); }

相關文章