Set
TreeSet 基于紅黑樹實現,支持有序性操作,例如根據一個范圍查找元素的操作。但是查找效率不如 HashSet,HashSet 查找的時間復雜度為 O(1),TreeSet 則為 O(logN)。 HashSet 基于哈希表實現,支持快速查找,但不支持有序性操作。并且失去了元素的插入順序信息,也就是說使用 Iterator 遍歷 HashSet 得到的結果是不確定的。 LinkedHashSet 具有 HashSet 的查找效率,且內部使用雙向鏈表維護元素的插入順序。
List
ArrayList 基于動態數組實現,支持隨機訪問。Vector 和 ArrayList 類似,但它是線程安全的。LinkedList 基于雙向鏈表實現,只能順序訪問,但是可以快速地在鏈表中間插入和刪除元素。不僅如此,LinkedList 還可以用作棧、隊列和雙向隊列。
Queue
LinkedList