ArrayList LinkedList Vector比较
ArrayList :
- 数组,按照索引下标访问速度快O(1),但是当删除、添加元素时会导致元素的移动,速度慢O(n)
- 不同步,线程不安全,但是并发高,访问效率高
LinkedList :
- 双向链表,按照索引下标访问速度慢O(n),但是删除添加元素速度快O(1)
- 不同步,线程不安全,但是并发高,访问效率高
Vector
- 数组,按照索引下标访问速度快O(1),但是当删除添加元素时会导致元素的移动,速度慢O(n)
- 同步,所以线程安全,但是并发低,访问效率低
如何选择
- ArrayList 适合用于经常需要快速访问,较少在中间增加删除元素时使用;如果多线程访问,则需要自行编程解 决线程安全问题
- LinkedList 适用于经常需要在内部增删元素,但是很 少需要通过索引快速访问时使用;如 果多线程访问,则需要自行编程解决线程安全问题
- Vector 一般不使用,如果在多线程访问时可以考虑使用