栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

ArrayList、LinkedList和Vector的区别

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ArrayList、LinkedList和Vector的区别

1.三者之间的关系

2.ArrayList和linkedList之间的区别
(1)相同点
ArrayList和linkedList都继承了AbstractList抽象类,都实现了List接口
ArrayList和linkedList是两个集合类,用于存储对象引用
(2)不同点
ArrayList底层通过动态数组实现,而linkedList底层通过双向链表实现
ArrayList根据索引查找元素的效率比较高,但是插入、删除数据时性能比较低,需要将待插入或删除元素之后的元素往后或往前移动
linkedList查询元素的效率比较低,需要从头部或尾部开始查找,挨个遍历每一个元素直到找到所需元素,但是插入、删除元素的效率比较高,比如,删除一个元素只需要把它的前一个元素的指针指向它后一个元素就可以
3.ArrayList和Vector之间的区别
(1)相同点
ArrayList和linkedList都继承了AbstractList抽象类,都实现了List接口
ArrayList和Vector底层都是通过数组实现的
默认初始化大小都是10
(2)不同点
Vector是线程安全的,而ArrayList是线程不安全的,Vector类中的方法通过synchronized修饰实现线程的同步,但实现同步需要很高的开销,这也导致了访问Vector比ArrayList慢
ArrayList和Vector都是采用连续的内存空间存储元素,但是当空间不足的时候,两个类扩容的方式是不同的。(ArrayList每次存储时会检查空间大小,不够时会扩充为原来的1.5倍,Vector会扩充为原来空间的2倍
ArrayList扩容:

Vector

Vecot可以设置增长因子,而ArrayList不可以

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/604504.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号