为了账号安全,请及时绑定邮箱和手机立即绑定

Vector、Arraylist、LinkedList区别

标签:
产品

    本博客站的集合模块下有关于这几个类的源码解析,应该先阅读他们的源码。

    首先这三个类都是实现自List接口,也就使得他们都是具有角标的存储集合。

    ArrayList和Vector底层都是基于数组的而且数组大小可变,ArraList默认大小为10,当然我们也可以根据需求调用

有参构造器指定大小,Vector也一样,默认为10,可自定义大小,ArrayList扩容是变化为原数组大小的1.5倍,而Vector默认

是变为原数组大小的二倍,Vector也可以在构造器中指定每次增长的大小。Vector是线程安全的,而ArrayList是线程不安全的,

而且两者的迭代器对象都采用的是快速失败机制,快速失败机制的实现其实很简单,顺便说下,就是定义一个变量,没对集合

进行一次更改(添加、删除、修改)操作,都让这个变量加一,当用迭代器进行迭代的时候,没遍历一个都要查看一下这个变量,

看变量是否发生了变化,一旦发生了变化,立即抛出异常。

    LinkedList不同于上面两个,它的底层是链表的结构,相对于其他两个它的插入删除速度较快,查找就比较慢了。

除此之外,LinkedList集合还是先了Deque(Queue接口的子接口),所以LinkedList也代表一个双向队列。同时Deque接口还提

供了一些包括pop(出栈)和push(入栈)两个方法。所以LinkedList也可以当做“栈”来使用。由此可见,LinkedList是一个

功能强大的集合类

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 1
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消