Java中Vector、LinkedList和ArrayList的区别以及在开发中的选择

JAVA中List用于存放多个元素,能够给元素排序,并且可以重复,List一共有三个实现类,分别是Vector、LinkedList和ArrayList,三个实现类的区别为:
1.ArrayList是使用最多的实现类,它能对元素进行快速随机访问,它也是可以扩容的,但是当要对它的中间部分进行插入或者修改时,需要对数组进行复制和移动,代价高,所以适用于查询,而不适用于插入和删除。
2.Vector和ArrayList不一样的是它支持线程同步,即在某一时刻,只能有一个线程写Vector,可以避免多线程同时写入时引起的不一致性,为了线程同步,需要付出不小的代价,所以在随机查询时,它的效率低于ArrayList。
3.ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,
都允许直接序号索引元素,但是插入数据要设计到数组元素移动 等内存操作,所以索引数据快插入数据慢,
Vector由于使用了线程同步,所以性能上比ArrayList要差
,LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需要记录本项的前后项即可,所以插入数度较快,总的来说,我们在开发中,查询时用ArrayList,增删改用LinkedList。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值