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