ArrayLIst和linkedlist的区别

  1. ArrayList 是实现了基于动态数组的数据接口,而LinkedList是基于链表的数据结构。
  2. 对于随机访问的Get和Set,ArrayList的性能要优于LinkedList。因为LinkedList需要移动指针。
  3. 对于添加和删除操作add和remove,LinkedList比ArrayList的效率更高,因为ArrayList是数组,所以在其中进行增删操作时,会对操作点之后所有数据的下标索引造成影响,需要进行数据的移动
  4. ArrayList主要的空间开销在于需要在IList列表预留一定空间;而LinkedList主要空间开销在于需要存储节点信息以及结点指针信息

ArrayList随机访问比LinkedList快的原因:

  1. ArrayList从原理上就是数据结构中的数组,也就是内存中的一片空间,这意味着,当我get(index)的时候,我可以根据数组的首地址+偏移量,直接计算出我想访问的第index元素在内存中的位置;而LinkedList可以简单理解为数据结构中的链表,在内存中开辟的不是一段连续的空间,而是每个元素有一个元素和下一个元素地址这样的内存结构,当get(index)时,只能从首元素开始,依次获取下一个元素的地址。用时间复杂度来表示的话,ArrayList的get(index)时O(1),而LinkedList是O(n)
相关推荐
nsjqj5 分钟前
JavaEE初阶:多线程初阶(2)
java·开发语言
黎雁·泠崖20 分钟前
Java面向对象:对象数组核心+综合实战
java·开发语言
Mr.LJie25 分钟前
记录使用iText7合并PDF文件、PDF发票、PDF火车票
java·pdf
野生技术架构师27 分钟前
2026最新最全Java 面试题大全(整理版)2000+ 面试题附答案详解
java·开发语言
小北方城市网32 分钟前
SpringBoot 集成 MinIO 实战(对象存储):实现高效文件管理
java·spring boot·redis·分布式·后端·python·缓存
Solar202537 分钟前
工程材料企业数据采集系统十大解决方案深度解析:从技术挑战到架构实践
java·大数据·运维·服务器·架构
又是忙碌的一天38 分钟前
SpringMVC的处理流程
java·mvc
黎雁·泠崖40 分钟前
Java分支循环与数组核心知识总结篇
java·c语言·开发语言
派大鑫wink43 分钟前
【Day36】EL 表达式与 JSTL 标签库:简化 JSP 开发
java·开发语言·jsp
Li_yizYa1 小时前
谈谈Java集合中的fail-fast和fail-safe
java·开发语言