相同点:
它允许所有元素,包括null。
List l=new ArrayList();
l.add(null);
此数组元素数大于实际存储的数据以便增加和插入元素,Arraylist的增加和插入是需要随机产生10-0之间的最大随机数来确定长度的变化
异:
vector同步:线程安全.synchrnized 锁级标的意思 但是在java方法里面表示同步的意思(源码)
arraylist异步:运行速度较快,因为没有采用线程.
理论:线程的安全就会产生等待.
同步方法:因为是让一个线程执行完之后,在执行下一个线程,中间有间隙时间.next
同步方法产生了队列 就像排队做一件事情一样.
Arraylist异步方法,只有一个线程,不需要等待上一个操作的执行,add方法所以速度快于vactor.
1、都是采用数组方式存储数据,可变长度,相当于一个特殊的数组
2、都是有序输出,都可以用循环遍历.
不同点:
1、Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法是不同步的,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。
2、当Vector或ArrayList中的元素的长度超过它的初始大小长度时,Vector会将它的容量翻倍增加长度,而ArrayList只增加50%的幅度,这样,ArrayList就有利于节约内存空间。
Vector v=new Vector();
List list=new ArrayList();
for (int i = 0; i <15; i++) {
v.add(i);
System.out.println(v.get(i));
}
for (int i = 0; i <15; i++) {
list.add(i);
System.out.println(list.get(i));
}
//调用显示vector的增加倍数 翻倍增长
print(v);
//调用显示list的增加倍数 0.5倍增长
print(list);
ArrayList 从存储数据的方式来看:
它允许所有元素,包括null。
List l=new ArrayList();
l.add(null);
此数组元素数大于实际存储的数据以便增加和插入元素,Arraylist的增加和插入是需要随机产生10-0之间的最大随机数来确定长度的变化
如果你的存储长度比增加长度的位数小,则产生随机数.都允许直接序号索引元素,但是插入数据要设计到数组元素 ,移动等内存操作,所以索引数据快插入数据慢。
补充:
答: 同:
1.都是可变长度的动态数组. 2.保存形式:add方法看出来都是先加先出.
异:
vector同步:线程安全.synchrnized 锁级标的意思 但是在java方法里面表示同步的意思(源码)
arraylist异步:运行速度较快,因为没有采用线程.
理论:线程的安全就会产生等待.
同步方法:因为是让一个线程执行完之后,在执行下一个线程,中间有间隙时间.next
同步方法产生了队列 就像排队做一件事情一样.
Arraylist异步方法,只有一个线程,不需要等待上一个操作的执行,add方法所以速度快于vactor.