ArrayList、LinkedList、Vector

来源:互联网 发布:龙渊网络代号龙 编辑:程序博客网 时间:2024/06/06 08:51

ArrayList和Vector都是用数组的方式来存放数据,她俩都允许直接用序号来索引元素,所以索引快,但插入慢。(因为插入时要涉及到元素移动,耗内存)。

几个的区别:

1.存储原理、同步:

Vector是同步的,即可以多个线程对一个程序进行同步访问(它会用锁,安全处理),所以这个类中的方法保证了Vector中的对象是线程安全的。

而ArrayList、LinkedList是异步的。

 

2.数据增长:

ArrayList和Vector,向内部增加数据时,如果增加的数目超出了当前的长度,会自动扩展内部数组的长度,Vector缺省情况下自动增长原来数组的一倍,而ArrayList是50%,故当数据多时,应该用Vector,少时用ArrayList.

 

 

总结:Vector同步、线程安全,速度慢,ArrayList、LinkedList异步,非线程安全,速度快。ArrayList和Vector使用数组方式,可以用下标定位索引,故索引快,插入慢,而LinkedList用双向链表实现存储,故索引慢,而插入快。索引多时,用ArrayList和Vector,而索引的数据多时,应该用Vector,少时用ArrayList;插入(添加、删除)多时,用LinkedList,速度快。线程安全时用Vector

原创粉丝点击