NOTE
5.19 List对比
1. ArrayList vs LinkedList ArrayList LinkedList ----------- ---------------------------------------------------- -------------------- 底层实现 数组 双向链表 复杂度
这是历史学习笔记,可能存在过时或不完整的理解。
1. ArrayList vs LinkedList
| ArrayList | LinkedList | |
|---|---|---|
| 底层实现 | 数组 | 双向链表 |
| 复杂度 | 根据索引查询快,增删慢 | 根据索引查询慢、增删快 |
| 是否需要扩容 | 初始值0,满了之后扩容。第一次扩容为10,扩容为原来的1.5倍 | 否 |
2. Vector vs ArrayList
| Vector | ArrayList | |
|---|---|---|
| 是否线程安全 | 是 | 否 |
| 是否需要扩容 | 初始值10,满了之后扩容。扩容为原来的2倍 | 初始值0,满了之后扩容。第一次扩容为10,扩容为原来的1.5倍 |
3. SynchronizedList vs Vector
| SynchronizedList | Vector | |
|---|---|---|
| 是否线程安全 | 是 | 是 |
| 同步方式 | sychronized块,使用当前list作为锁对象。可以将任意list转换成线程安全的 | sychronized方法,使用当前list作为锁对象 |