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)
相关推荐
鸡蛋豆腐仙子8 分钟前
redis及实现分布式锁的原理
java·redis·分布式·学习·缓存
好家伙VCC11 分钟前
# 发散创新:基于Solidity的DeFi协议设计与实现——从原理到实战代码解析在区块链世界中,**DeFi(去中心化金
java·python·去中心化·区块链
H Corey12 分钟前
Java字符串操作全解析
java·开发语言·学习·intellij-idea
Aric_Jones12 分钟前
博客音乐播放器实现全解析
java·运维·数据库·人工智能·docker·容器·eclipse
2501_9419820517 分钟前
Python开发:实现企微外部群消息关键词监控
java·服务器·数据库
brucelee18618 分钟前
Java 开发AWS Lambda 实战指南(SAM CLI + IntelliJ)
java·开发语言
码云数智-大飞19 分钟前
Nginx负载均衡四大核心算法深度解析:原理、配置与选型实战
java
消失的旧时光-194319 分钟前
第二十一课:系统是怎么一步步拆坏的?——单体到模块化实践(完整工程版)
java·spring boot·后端·架构
Coder_Boy_30 分钟前
Java高级_资深_架构岗 核心知识点(云原生)
java·云原生·架构
Coder_Boy_34 分钟前
Java高级_资深_架构岗 核心面试知识点(AI整合+混合部署)
java·人工智能·spring boot·后端·面试·架构