1. 程式人生 > >java Collection集合總結

java Collection集合總結

在這裡插入圖片描述

目錄
java中的Set集合
java中的List集合
java中的Queue集合

Set實現類的效能分析

HashSet的效能總比TreeSet要好,因為TreeSet需要額外的紅黑樹演算法來維護集合元素的次序。只由當需要一個保持排序的Set時,才應該使用TreeSet否則都使用HashSet。

LinkedHashSet對於普通的插入、刪除操作比HashSet慢一點,這是由維護連結串列所帶來的額外開銷造成的,但由於有了連結串列,遍歷LinkedHashSet會更快。

EnumSet是所有Set實現類中效能最好的,但它只能儲存同一列舉類的列舉值作為集合元素。

各種線性表的效能分析

ArrayList基於陣列的線性表;
LinkedList基於連結串列的線性表;
Queue:佇列;
Deque:雙端佇列(即可當佇列使用,又可當棧使用)

  • 如果需要遍歷List集合元素,對於ArrayList和Vector應該使用隨機訪問來遍歷集合元素;對於LinkedList集合,則應該採用迭代器來遍歷。
  • 如果需要經常執行插入、刪除等操作來改變包含大量資料的List集合的大小,可以考慮LinkedList。使用ArrayList、Vector集合可能需要經常重新分配內部陣列的大小。
  • 如果有多個執行緒需要同時訪問List集合的元素,可以考慮使用Collections將集合包裝成執行緒安全的集合。