Vector与ArrayList和LinkedList区别(简略)

来源:互联网 发布:手机淘宝红包怎么领取 编辑:程序博客网 时间:2024/06/06 13:25

Vector,ArrayList与linkedList都是List的实现类

Vector与ArrayList类似,内部使用一个数组进行数据的存储,支持固定顺序,能够快速随机访问。不同点一:Vector是线程安全的,ArrayList不是,所以写入速度赶不上ArrayList;不同点二:如果存储空间不足,ArrayList是增加50%,而Vector是直接翻倍。
Vector与LinkedList的区别:Vector内部是数组,支持快速随机读取,但是插入数据则意味着要将数组部分整个移动;而LinkedList内部是一个链表结构,可以高速插入数据,读取较慢;

ArrayList的初始值大小:
ArrayList类包含两个重要对象:
transient Object[] elementData //非private是为了方便嵌套类的访问
和private int size,
前者是一个动态数组,会根据构造函数ArrayList(int initCapacity)来设置初始容量,如果使用无参构造,默认创建初始容量为10的数组(只是逻辑上的),并根据实际容量增长而增长。size则是动态数组的实际大小,初始的size=0,有参无惨都是0;
当10不够时,会将当前大小右移确定增长的大小
如10>>1=5,所以10增长到15
15>1=7,所以增长到22

原创粉丝点击