ArrayLis与LinkedList,Vector的区别

ArrayList与LinkedList,Vector的区别

       首先三种都可以用来实现List接口,List 接口继承于Collection的接口。它是有序可重复的队列(有序指输入有序,输入是什么顺序,输出也是什么顺序。而Set不是)。3个具体实现类的区别如下:

1. ArrayList和Vector内部是由数组实现,LinkedList内部由链表实现
       数组实现意味着ArrayList和Vector更加适合随机查找和遍历,不适合删除和插入,而链表实现则意味着LinkedList适合插入和删除,不适合随机查找和遍历,同时LinkedList提供了List接口中没有的方法,例如addFrist(),getFrist(),addLast(),getLast(),removeFrist()等,这些方法可以很方便的操作表头和表尾元素,可以把LinkedList当作堆栈,队列使用。
2. ArrayList和LinkedList是线程异步的,而Vector是线程同步的
        线程同步固然安全,但是在不涉及多线程时,ArrayList占用资源更少,执行效率更高。

3. ArrayList和Vector都可以自动增长
        如果集合元素数量超过集合数组本身长度,ArrayList和Vector都可以自动增长,ArrayList增长率为目前数组长度的50%,而Vector增长率为目前数组长度的100%。

总结:

       ArrayList和Vector更适合查询和遍历,涉及大量插入删除请用LinkedList
       ArrayList和LinkedList没有线程安全,涉及多线程操作请用Vector
       LinkedList有函数可以操作表头表尾,模拟堆栈,队列请用LinkedList

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值