当前位置: 首页 > news >正文

数据结构 -- ArrayList与LinkedList的区别

一、二者的相同点

1,它们都是继承自List接口。

二、二者的区别

1,数据结构:ArrayList是(Array动态数组)的数据结构;而LinkedList是(Link双向链表)的数据结构。ArrayList 自由性较低,需要手动的设置固定大小的变化。而LinkedList自由性较高。

2,随机访问 (get、set):ArrayList 比 LinkedList 效率更高。原因是 ArrayList 在内存中的表现形式是一段连续的空间,当我 get(index) 的时候,我可以根据数组的首地址+偏移量,直接计算出我想访问的第 index个元素位置; 而 LinkedList 是链表的形式,在内存中的表现形式不是一段连续的空间,而是每个元素中都存储着上一个和下一个元素指针地址,当get(index)时,只能从首个元素开始,依次获取下一个元素的地址。LinkedList是线性的数据存储方式,所以需要移动指针从前往后依次查找。用时间复杂度来表示的话,ArrayList 的 get(index) 是 O(1),而 LinkedList 是 O(n)    

3,增加和删除操 (add ,remove): LinkedList 比 ArrayList 的效率更高,因为ArrayList是数组,在进行增、删操作时,会改变操作节点之后所有数据的下标,需要进行数据的移动。

http://www.lryc.cn/news/212644.html

相关文章:

  • 豪车托运为什么选小板
  • 【base64加密】js/ts的基础加密
  • 基于python的app程式开发
  • Spring Event学习
  • UE4 HLSL学习笔记
  • 报文的路由过程
  • 【CPP】类和对象
  • 【多线程面试题二十】、 如何实现互斥锁(mutex)?
  • hypercube背景设置为白色,绘制高光谱3D立方体
  • Visual Studio(VS)C++项目 管理第三方依赖库和目录设置
  • leetCode 2578. 最小和分割 + 排序 + 贪心 + 奇偶分组(构造最优解)
  • 自定义实现图片裁剪
  • 开发语言工具编程系统化教程入门和初级专辑课程上线
  • 【Truffle】二、自定义合约测试
  • 场景交易额超40亿,海尔智家三翼鸟开始收获
  • 众和策略可靠吗?股票扛杆怎么玩?
  • 解决连接Mysql出现ERROR 2013 (HY000): Lost connection to MySQL server at ‘waiting
  • Hadoop YARN功能介绍--资源管理、调度任务
  • 从AlexNet到chatGPT的演进过程
  • Unity如何实现bHaptics TrackSuit震动衣的SDK接入
  • 识别flink的反压源头
  • Spring是如何解决bean循环依赖的问题的
  • [移动通讯]【Carrier Aggregation-9】【 Radio Resource Control (RRC) Aspects】
  • 故障预测与健康管理(PHM)的由来以及当前面临的挑战
  • 【ChatGPT瀑布到水母】AI 在驱动软件研发的革新与实践
  • 【Django】项目模型
  • 字符集详解
  • Vert.x学习笔记-什么是Vert.x
  • AcWing 第127场周赛 构造矩阵
  • Seata入门系列【15】@GlobalLock注解使用场景及源码分析