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