首先先讲解一下Java中vector
//两种创建方式
Vector v=new Vector();
Vector[] v=new Vector[100002];
在Java中我们通常使用的Vector和Arraylist底层都是可变的数组实现,但两种可变数组是必然有区别的
不同点:
①在读Vector的源码中我们会发现,Vector的方法都是有synchronized修饰的,所以线程就会安全,但是同时也会带来弊端就是效率就会降低,但Arraylist恰恰相反,这也就导致Arraylist的效率比Vector高。
②因为是两者都是可变数组的缘故,所以区别也在于两者的可变数组,在数据需要增长时,Vector会增长为原来数组长的一倍,而Arraylist只会增长为原来的一半,这样也就很明显,Arraylist节约内存空间
这里补充一下,由于Arraylist和Vector都是由数组实现的,所以他们有一个共同点,索引,这就提供了在进行查找的时候,速度就相对会快一些,不过在考虑查询的时候,又要考虑两者之间的线程问题(Vector会慢一些),但在增加的时候,同样是由List接口实现而来的LinkList不同的是,LinkList的底层是由双向链表实现而来的,所以在插入、删除、修改操作时,使用LinkList的速度又会比Arraylist和Vector都快!!!