列表相关比较

ArrayList 和Vector

都是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,
都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快,插入数据慢。

  • 线程安全问题:

vector是线程(Thread)同步(Synchronized)的,所以它是线程安全的,
而Arraylist是线程异步(ASynchronized)的,是不安全的。
如果不考虑到线程的安全因素,一般用Arraylist效率比较高。

  • 元素个数和数组长度:

vector增长率为目前数组长度的100%,而arraylist增长率为目前数组长度的50%。
如果在集合中使用数据量比较大的数据,用vector有一定的优势。

  • 查询指定元素:

vector和arraylist使用的时间是相同的,都是O(1),这个时候使用vector和arraylist都可以。

  • 移动元素问题:

而如果移动一个指定位置的数据花费的时间为O(n-i)n为总长度,
这个时候就应该考虑到使用Linkedlist,因为它移动一个指定位置的数据所花费的时间为O(1),而查询一个指定位置的数据时花费的时间为O(i)。LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需要记录本项的前后项即可,所以插入数度较快!

 

    【总】

  增  删  改  查  线程
LinkedList   不安全
ArrayList       不安全
Vector       安全
posted @ 2020-08-10 11:02  阿猫阿狗还有阿舟  阅读(26)  评论(0)    收藏  举报