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版权协议,转载请附上原文出处链接和本声明。