ArrayList,LinkedList和Vector的区别

ArrayList:查询快,增删改慢,线程不安全,底层由Array(数组)实现,刚创建未添加数据时,初始容量为0,当已知需要存储大量数据时,可以调用带参构造指定容量;




在第一次添加数据,初始容量赋值为10,当数据达到容量时,根据当前容量扩容1.5倍;数组在内存中是一段连续的内存,可以直接根据索引快速找到目标元素,当在数组前面或中间增删改时,需要其他元素的位置,导致效率较低。

LinkedList:增删改快,查询慢,线程不安全,底层由Linked(链表)实现,链表在内存中是指向随机分布的地址,查询时需要从第一位或者最后一位开始一个个往下查询,效率较低,增删改时只需要在指定位置修改前后两个节点的指针域指向,速度较快。

Vector:功能和实现与ArrayList相似,初始容量为10;


外部可操作方法基本全部用synchronized修饰,线程安全,效率极慢,不推荐使用;

总结:已知查询较多用ArrayList,增删改较多用LinkedList,多线程为保证线程安全建议自行使用synchronized处理

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容