Vector与ArrayList的区别

Vector与ArrayList的区别

开发工具与关键技术:java,Vector,ArrayList 
撰写时间:2019-04-27

主要讲述的是List接口下的Vector集合与ArrayList集合
Vector类:底层是数组数据结构。线程同步;可以实现可增长的对象数组,与数组一样,它包含可以使用整数索引进行访问的组件。

ArrayList类:底层同时也是数组数据结构,线程不同步,也是可以实现同Vector类的功能大致相同。

Vector类与ArrayList类的区别
线程安全

Vector:线程同步(在安全问题上这个安全些)
ArrayList:线程不同步(在安全问题上这个是不安全的,但是现在Java有很多类都有提供安全机制,比如加锁,加锁后线程就不会存在不安全问题了)

运行效率
Vector:由于线程安全,所以导致运行效率较低。
ArrayList:不用考虑线程的安全,所以运行效率当然是较高的。

在说下述存储空间大小区别先了解一下:集合其实就是数组的升级版(个人理解),数组长度是不可变的,而集合长度是可变的。所以集合可以称为可变数组
存储空间大小
下述两段文字几乎相同,可忽略直接看总结
Vector:初始值长度为10,如果长度超出了默认值,就会new一个新的数组,数组增加长度百分之百(在原数组的长度基础上延长)。把原来10长度的数组数据复制到增加长度后的数组(新数组)中,再把新的元素添加到后面去(就是超出原长度的多出的元素)。

ArrayList:初始值长度为10,如果长度超出了默认值,就会new一个新的数组,数组增加长度百分五十(在原数组的长度基础上延长)。把原来10长度的数组数据复制到增加长度后的数组(新数组)中,再把新的元素添加到后面去(就是超出原长度的多出的元素)。

总结存储空间大小:第一点:上述的唯一不同点就是,元素超出后自动增长的长度不一样,Vector是增长百分之百,ArrayList是增长百分之五十,当延长长度后,长度还是不够,就继续延长。所以说,ArrayList更节省空间。
第二点:抛弃短的旧数组,迎来新数组。但没有把元素抛弃,是复制到新数组中。
在这里插入图片描述
光看10其实没多大的感觉,如果是100呢,就有多出50了的长度了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值