Java容器概覽
容器主要包括 Collection 和 Map 兩種,Collection 儲存著物件的集合,而 Map 儲存著鍵值對(兩個物件)的對映表。
Collection
1. Set
-
TreeSet:基於紅黑樹實現,支援有序性操作,例如根據一個範圍查詢元素的操作。但是查詢效率不如 HashSet,HashSet 查詢的時間複雜度為 O(1),TreeSet 則為 O(logN)。
-
HashSet:基於雜湊表實現,支援快速查詢,但不支援有序性操作。並且失去了元素的插入順序資訊,也就是說使用 Iterator 遍歷 HashSet 得到的結果是不確定的。
-
LinkedHashSet:具有 HashSet 的查詢效率,且內部使用雙向連結串列維護元素的插入順序。
2. List
-
ArrayList:基於動態陣列實現,支援隨機訪問。
-
Vector:和 ArrayList 類似,但它是執行緒安全的。
-
LinkedList:基於雙向連結串列實現,只能順序訪問,但是可以快速地在連結串列中間插入和刪除元素。不僅如此,LinkedList 還可以用作棧、佇列和雙向佇列。
3. Queue
-
LinkedList:可以用它來實現雙向佇列。
-
PriorityQueue:基於堆結構實現,可以用它來實現優先佇列。