Vector与ArrayList和LinkedList区别(简略)

本文探讨了Vector、ArrayList和LinkedList作为List实现类的特点。Vector与ArrayList都采用数组存储,但Vector支持线程安全,且扩容策略不同。而LinkedList采用链表结构,适合频繁插入操作。同时介绍了ArrayList的初始容量及扩容机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值