Java数据结构 Vector和ArrayList 比较

本文对比了ArrayList与Vector两种集合类的相同点与不同点。相同点包括:它们都继承自AbstractList,使用内部数组存储数据,并有着类似的设计理念。不同之处在于Vector提供了线程安全保证而ArrayList没有;Vector在数组容量不足时会按初始大小扩容,而ArrayList则按1.5倍扩容。

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

相同点:
1、具有相同的父类AbstractList。
2、数据都是用内部维护的数组来存放。
3、设计理念基本相同。
不同点:
1、Vector是线程安全的ArrayList是线程不安全的
原因:Vector中所有操作都必定有一步是方法被synchronized关键字修饰的,所以是安全的
ArrayList中没有synchronized同步代码,所有多线程编程中,线程是不安全的
2、存储长度不够的扩容大小不一样
Vector是扩容固定值,这个值是初始化的时候默认的数组存储个数(默认是10)。
ArrayList是扩容当前数量的1.5倍。
(前提是最终扩容没有超过规定的最大存储个数:0x7fffffff-8 )

选择:多线程操作首先考虑Vector
单线程操作首选ArrayList
除了线程安全方面,其他基本都一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值