本博客站的集合模块下有关于这几个类的源码解析,应该先阅读他们的源码。
首先这三个类都是实现自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 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦