括號爲是否線程安全 安全
list: LinkedList(no) ArrayList(no) Vector(yes) Stack(yes) 線程
map: HashMap(no) LinkedHashMap(no) HashTable(yes) WeakHashMap TreeMap 設計
set: HashSet(no) LinkedHashSet(no) SortedSet TreeSet 對象
最經常使用的好像爲每行的前兩個 排序
特徵: 繼承
1. Linked開頭的適合快速插入,刪除元素, linked維護元素插入的次序 接口
2. Set 在 HashMap 的基礎上實現, 因此Set結尾的key是不會重複的 同步
3. Tree開頭的是每次改變發生排序的, 速度慢 hash
適用: io
1. 須要快速插入,刪除元素, 用 LinkedList; 須要快速隨機訪問元素,用 ArrayList
2. Vector 相似 ArrayList, 可是是同步的
3. Stack 繼承 Vector , 是後進先出的堆棧
4. HashMap, put進去的對象位置會發生變化, LinkedHashMap 則不會
5. HashSet 是專門爲快速查詢而設計的, 插入會產生排序(LinkedHashSet 不會), 存入HashSet的對象必須定義hashCode方法
6. SortedSet 是保持元素的有序順序的Set接口, 添加到 SortedSet 實現類的元素必須實現Comparable接口, TreeSet 類是它的惟一一份實現
其它:
1. 非同步的能夠進行外部同步,或者使用Collections.synchronizedMap()的方法包裝成一個thread-safe的Map/Set
2. LinkedHashMap支持兩種排序:插入順序、訪問順序。前者是指按照插入時的順序排序,後者是指按照最舊使用到最近使用的順序