List三种实现的区别

List三种实现的区别

1、相同点:三个类都是实现了List接口,储存数据特点相同,储存有序的,可重复的数据

2、区别:

ArrayList

LinkedList

Vector

实现方式

数组,按照索引下标访问速度快O(1),但是删除添加元素时会导致元素的移动,速度慢O(n)

双向链表,按照索引下标访问速度慢O(n),

但是删除添加元素速度快O(1)

数组,按照索引下标访问速度快O(1),但是删除添加元素时会导致元素的移动,速度慢O(n)

是否同步

不同步,线程不安全,但是并发高,访问效率高

不同步,线程不安全,但是并发高,访问效率高

同步,所以线程安全,但是并发低,访问效率低

如何选择

经常需要快速访问,较少的中间增加删除元素时使用;如果多线程访问,则需要自行编程解决线程安全问题

经常需要在内部增删元素,但是很少需要通过索引快速访问时使用;如果多线程访问,则需要自行编程解决线程安全问题

一般比使用,如果在多线程访问时可以考虑使用

 


版权声明:本文为weixin_50518344原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。