ArrayList和Vector的区别

本文对比了Vector与ArrayList这两种实现List接口的数据结构。介绍了它们在线程安全性、数据增长方面的区别,并探讨了何时选择哪种数据结构更合适。

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

这两个类之间都实现了List接口,他们都是有序存储的。即存储在这两个集合中的数据都是有顺序的,都可以通过他们的位置索引号取出数据。并且数据允许重复。

(1)同步行性

      Vector是线程安全的,也就是说它的方法之间是线程同步的,而ArrayList是线程不安全的,就是它的方法之间是不同步的。如果只有一个线程访问到集合,最好是使用ArrayList,因为不用考虑线程安全问题,效率也会高一些。如果有多个线程访问,最好使用Vector,以为不需要我们去编写线程安全的代码。

备注:对于Vector&ArrayList,Hashtable&HashMap。要记住线程安全问题,记住Vector与Hashtable都是线程安全的,他们是旧的是java一诞生就有的,而ArrayList与HashMap是新的,是在java2时才有的,他们是线程不安全的。

(2)数据增长

    ArrayList与Vector都有一个初始的容量大小。当存储进他们的元素的个数超过了容量时,就要增加存储空间,每次增加存储空间不只是增加一个存储空间,对于Vector默认增加为原来的两倍。对于ArrayList默认增加为原来的1.5倍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值