List
Set
Map
有序 collection
允许重复元素
允许null元素
ArrayList
有序 collection(内部通过数组实现)允许重复元素允许null元素非同步
Vector
有序 collection(内部通过数组实现)允许重复元素允许null元素同步
LinkedList
有序 collection(内部通过双向链表实现)允许重复元素允许null元素非同步
Set
最多包含一个 null 元素
不包含重复元素的 collection(更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2)
HashSet
最多包含一个 null 元素不包含重复元素的 collection(更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2)不保证 set 的迭代顺(特别是它不保证该顺序恒久不变)非同步
LinkedHashSet
最多包含一个 null 元素不包含重复元素的 collection(更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2)可预知迭代顺序(维护着一个运行于所有条目的双重链接列表,此链接列表定义了迭代顺序,即按照将元素插入到 set 中的顺序)非同步
TreeSet
不允许包含 null 元素不包含重复元素的 collection(更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2)自然顺序进行排序非同步
Map
键值对
HashMap
允许将 null 用作值或键(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)不保证映射的顺序,特别是它不保证该顺序恒久不变非同步
LinkedHashMap
允许将 null 用作值或键具有可预知的迭代顺序(维护着一个运行于所有条目的双重链接列表,此链接列表定义了迭代顺序,该迭代顺序通常就是将键插入到映射中的顺序)非同步
ConcurrentHashMap
不允许将 null 用作键或值不保证映射的顺序,特别是它不保证该顺序恒久不变支持获取的完全并发和更新的所期望可调整并发的哈希表同步(桶Lock锁)
TreeMap
仅允许将 null 用作值,但不允许其作为键自然顺序进行排序(基于红黑树的 NavigableMap 实现)非同步
Hashtable
不允许将 null 用作值或键不保证映射的顺序同步(整个hash表锁)