arrayList和vector的区别,为什么废弃掉了vector?

 

就ArrayList与Vector的区别主要从二方面来说. 


一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的 
二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半 

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

 

那么为什么用ArrayList取代了Vector了呢?

 ArrayList类是可以动态增长和缩减的索引序列,它封装了一个动态再分配的对象数组,它实现了List接口。List接口用于描述一个有序的集合,集合中各个元素的位置是非常重要的。有两种协议用来访问各个元素,一种是通过迭代器,另一种是使用get和set方法来随机访问这些元素。后者对链表不太适用,不过get和set对于数组则非常适用。

    当要实现一个动态数组时,我们可能使用过Vector类。那么现在为什么要用ArrayList来代替Vector呢?原因很简单:Vector类的所有方法都是同步的(synchronized)。你可以使用两个线程安全的访问Vector对象。但是,如果你只用单个线程来访问Vector对象——这是更加常见的情况——那么你的代码将会在同步操作上浪费相当多的时间。相反,ArrayList类的方法不是同步的。因此现在的建议一般是在不需要同步时使用ArrayList而不是Vector。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值