Java中Vector和ArrayList主要区别

首先先讲解一下Java中vector

//两种创建方式
Vector v=new Vector();
Vector[] v=new Vector[100002];

在Java中我们通常使用的Vector和Arraylist底层都是可变的数组实现,但两种可变数组是必然有区别的

不同点:

①在读Vector的源码中我们会发现,Vector的方法都是有synchronized修饰的,所以线程就会安全,但是同时也会带来弊端就是效率就会降低,但Arraylist恰恰相反,这也就导致Arraylist的效率比Vector高。

②因为是两者都是可变数组的缘故,所以区别也在于两者的可变数组,在数据需要增长时,Vector会增长为原来数组长的一倍,而Arraylist只会增长为原来的一半,这样也就很明显,Arraylist节约内存空间

这里补充一下,由于Arraylist和Vector都是由数组实现的,所以他们有一个共同点,索引,这就提供了在进行查找的时候,速度就相对会快一些,不过在考虑查询的时候,又要考虑两者之间的线程问题(Vector会慢一些),但在增加的时候,同样是由List接口实现而来的LinkList不同的是,LinkList的底层是由双向链表实现而来的,所以在插入、删除、修改操作时,使用LinkList的速度又会比Arraylist和Vector都快!!!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈Demo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值