ArrayList,LinkedList,Vector三者有什么区别呢?
下文笔者讲述Arraylist,LinkedList,Vector三个集合对象的区别说明,如下所示
ArrayList,LinkedList,Vector三者共同点
ArrayList,LinkedList,Vector三者都实现了List接口 因为实现了List接口,所以三者都是有序集合 三者的功能非常相似 都对外提供搜索、添加、删除的功能 三者都对外提供迭代器的遍历方式上面是笔者讲述三者的相同点,那么三者的不同点是什么呢?下文笔者将一一道来,如下所示
ArrayList,LinkedList,Vector三者区别
区别1:
底层存储不同
ArrayList和Vector两个的底层存储采用的是动态数组
LinkedList底层数据存储采用的是双向循环链表
区别2:随机访问效率不同
ArrayList和Vector比LinkedList
使用索引随机访问时效率比LinkedList高
区别3:增加和删除效率
在非尾部的位置增加和删除元素时,
LinkedList比"ArrayList和Vector"效率高
区别4:占用大小
LinkedList比"ArrayList和Vector"占用空间大
我们从LinkedList的数据结构上可以看出其占用大
区别5:线程安全上
ArrayList和LinkedList不是线程安全
Vector中使用synchronized同步锁,来保证线程安全
区别6:容量变化上
ArrayList和Vector会根据实际大小估算出扩容的大小
Vector每次会增加1倍容量
ArrayList每次会增加50%容量
LinkedList采用指针的模式,无需扩容,理论上无限大
从以上“ArrayList,LinkedList,Vector三者的区别上”,我们可以总结出"ArrayList,LinkedList,Vector"的应用场景
ArrayList适用于:
频繁随机访问集合中元素
Vector适用于:
需线程安全的操作元素
LinkedList适用于:
频繁的插入和删除操作的数据结构
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


