ArrayList | Vector | LinkedList | |
实现原理 | 数组 | 数组 | 双向链表 |
线程安全 | 否 | 是 | 否 |
优点 | 1.数组实现优于遍历 2.非线程安全,效率较高 | 1.数组实现优于遍历 2.线程安全 | 1.节点的增删无需对象的重建 2.空间利用毫无浪费 |
缺点 | 1.非线程安全 2.数组中未使用元素照成了空间的浪费 3.扩容可能引起对象的重建 4.增删有可能引起数组元素的移动 | 1.数组中未使用的元素造成空间的浪费 2.扩容可能引起对象的重建 3.线程安全,效率相对低 4.增删有可能引起数组元素的移动 | 1.遍历效率较低 2.非线程安全 |
扩容 | 0.5倍增量 | 1倍增量 | 按需增删 |
使用场景 | 1.无线程的要求。 2.遍历较多,增删较少 | 1.有线程安全的要求 2.遍历场景较多,增删场景较少 | 增删场景较多的时候 |
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |