一、总体框架
二、Collection
Colletcion接口下有两大实现:List和Set
| List | Set | |
|---|---|---|
| 是否有序 | LinkedList有序,其他无序 | HashSet无序,TreeSet有序 |
| 元素是否可重复 | 是 | 否 |
| 具体实现 | ArrayList、LinkedList、Vector | HashSet、TreeSet |
| 是否线程安全 | Vector安全,其他不安全 | 都不安全 |
三、Map
Colletcion接口下有两大实现:Map和Dictionary(已废弃)
| Map | Dictionary | |
|---|---|---|
| 是否有序 | TreeMap 有序,HashMap无序 | 无序 |
| 元素是否可重复 | key唯一 | key唯一 |
| 具体实现 | HashMap、TreeMap | HashTable |
| 是否线程安全 | 不安全 | 安全 |
四、主要特性总结
1.有序的:LinkedList(可以按最近使用的次序排序)、TreeMap /TreeSet(按外部比较器或者内部比较器)
2.线程安全性的:Vector、HashTable线程安全,其他不安全
3.初始化容量及扩容:
| 初始化容量n | 扩容后容量 | |
|---|---|---|
| ArrayList | 10 | 1)如果是add方法扩容的,取n+n/2 ; 2)如果是用户手动扩容 ensureCapacity,则要判断传入的参数minCapacityminCapacity<length =>不改变长度 否则,取取n+n/2 |
| Vector | 10 | 若容量增加系数 >0,则将容量的值增加“容量增加系数”;否则,2*n |
| HashMap | 16 | 2*n |
| HashTable | 11 | 2*n+1 |
4.待补充