news 2026/1/12 5:09:20

1.ArrayList和LinkedList的区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
1.ArrayList和LinkedList的区别
  • ArrayList总结

1.ArrayList的底层数据结构基于动态数组,连续内存存储,适合下标访问(随机访问)

2.扩容机制:因为数组长度固定,超出长度存数据时想要新建数组,然后把老数组中的数据拷贝到新数组

3.如果不是尾部插入数据还会涉及到元素的移动,使用尾插法并指定初始容量可以极大提升性能,甚至超过LinkedList(LinkedList插入元素需要创建大量的node对象)

ArrayList底层的数据结构是一个elementData数组

LinkedList总结

  1. 基于双向链表,可以存储在分散的内存中,适合做数据插入及删除操作(尾部插入和ArrayList差不多)
  2. LinkedList不存在扩容问题
  3. 遍历LinkedList必须使用iterator不能使用for循环,因为每次for循环内部通过get(i)取得某一元素时都需要对LinkedList重新进行遍历,性能消耗极大。

LinkedList底层数据结构是双向链表,当我向LinkedList中添加元素的时候,元素会被包装成一个node对象,node中有一个next(下一个节点)和prev(上一个节点)的两个指针,被称为双向链表

区别

1.ArrayList存储的时候要求数据都是挨在一起的连续的,LinkedList的数据可东一块西一块,只要用指针串起来就好了

2.ArrayList可以下标访问,LinkedList不可以下标访问,最推荐通过迭代器进行访问,如果使用for性能消耗极大

3.⾸先,他们的底层数据结构不同,ArrayList底层是基于数组实现的,LinkedList底层是基于链表实现的

4.由于底层数据结构不同,他们所适⽤的场景也不同,ArrayList更适合随机查找,LinkedList更适合删除和添加,查询、添加、删除的时间复杂度不同

5.另外ArrayList和LinkedList都实现了List接⼝,但是LinkedList还额外实现了Deque接⼝,所以LinkedList还可以当做队列来使⽤

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/24 3:28:31

从缺陷到成长:软件测试中的典型教训与体系化改进

在软件质量保障的道路上,每个测试团队都经历过令人扼腕的漏测事件和值得深思的教训。这些教训犹如灯塔,照亮着我们前进的方向。本文将通过三个维度的典型案例分析,深入探讨测试过程中的常见陷阱,并基于2025年的测试实践趋势&#…

作者头像 李华
网站建设 2025/12/23 19:13:36

3步搞定API类型安全:openapi-typescript实战指南

3步搞定API类型安全:openapi-typescript实战指南 【免费下载链接】openapi-typescript Generate TypeScript types from OpenAPI 3 specs 项目地址: https://gitcode.com/gh_mirrors/ope/openapi-typescript 你是否曾经在调用API时因为参数类型不匹配而debug…

作者头像 李华
网站建设 2025/12/30 22:01:07

AI一键转换:Excel数据秒变JSON格式

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个在线工具,用户上传Excel文件后,自动将其转换为JSON格式。要求支持.xlsx和.csv格式,可自定义JSON键名,提供格式化输出选项。使…

作者头像 李华
网站建设 2025/12/23 2:57:55

ROS零基础入门:用fishros一键安装轻松搭建开发环境

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个面向ROS初学者的fishros安装指导工具,包含:1.图文并茂的安装向导 2.常见问题即时解答 3.基础功能验证小乌龟demo 4.下一步学习路线建议 5.社区资源链…

作者头像 李华
网站建设 2025/12/22 18:43:47

FaceFusion开源生态建设进展:插件体系正在成型

FaceFusion开源生态建设进展:插件体系正在成型 在数字内容创作日益繁荣的今天,从短视频平台上的“一键换脸”特效,到影视工业中高精度的角色替身合成,人脸处理技术早已不再是实验室里的概念。它正以前所未有的速度渗透进我们的视觉…

作者头像 李华
网站建设 2026/1/9 11:00:49

传统Ping vs ATKKPing:网络诊断效率提升300%

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个性能对比工具,能够同时运行传统Ping命令和ATKKPing进行网络检测,并自动生成对比报告。要求:1) 支持多线程并发测试;2) 统计检…

作者头像 李华