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)
相关推荐
❥ღ Komo·3 小时前
K8s服务发现与DNS解析全解析
java·开发语言
g***B7385 小时前
Java 工程复杂性的真正来源:从语言设计到现代架构的全链路解析
java·人工智能·架构
期待のcode7 小时前
MyBatisX插件
java·数据库·后端·mybatis·springboot
醇氧9 小时前
【Windows】优雅启动:解析一个 Java 服务的后台启动脚本
java·开发语言·windows
sunxunyong9 小时前
doris运维命令
java·运维·数据库
菜鸟起航ing9 小时前
Spring AI 全方位指南:从基础入门到高级实战
java·人工智能·spring
古城小栈10 小时前
Docker 多阶段构建:Go_Java 镜像瘦身运动
java·docker·golang
MapGIS技术支持10 小时前
MapGIS Objects Java计算一个三维点到平面的距离
java·开发语言·平面·制图·mapgis
Coder_Boy_10 小时前
业务导向型技术日志首日记录(业务中使用的技术栈)
java·驱动开发·微服务
盖世英雄酱5813611 小时前
springboot 项目 从jdk 8 升级到jdk21 会面临哪些问题
java·后端