Vectory与ArrayList的区别

     Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。

VectorArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,ArrayList只增加50%的大小,这样,ArrayList就有利于节约内存空间。

       可能很多人都不知道ArrayList,但是肯定知道Vector,因为VectorArrayList早,所以用的

比较多。但是在java1.2之后的Collection框架中,Vector已经被淘汰了,因为要保持兼容型,

这个类会一直存在,但是确被建议不要使用,这就是软件的兼容性。

    对于不熟悉Vector的人那最好了,直接用ArrayList就好了,不过习惯使用Vector的最好也转到ArrayList(虽然Vector可能永远存在JDK),但是我们没有理由放弃ArrayList使用Vector

    public class Vector extends AbstractList implements

                                                   List,  RandomAccess, Cloneable, java.io.Serializable

    可以看出和ArrayList的声明是一样的,这里不考虑它的实现,来看看主要区别:

1、Vector有而ArrayList没有的方法:addElementcopyIntoelementAtelementsfirstElementfirstElement等等,这里就不一一列举,基本上都是多余的方法,而且还使用了Enumeration(一起被淘汰的)

2、Vector的实现相对ArrayList稍微复杂,Vector功能并不比ArrayList强大,代码量确是两倍。

3、Vector中的大部分方法都是同步方法,不要认为这是它的优点!同步是要付出代价的,要不然在单例模式中很多人都希望用Double-Check Lock(虽然不可行)。因为方法都经过同步,效率自然下降不少。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值