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)
相关推荐
TDengine (老段)4 分钟前
基于 TSBS 标准数据集下 TimescaleDB、InfluxDB 与 TDengine 性能对比测试报告
java·大数据·开发语言·数据库·时序数据库·tdengine·iotdb
养军博客6 分钟前
spring boot3.0自定义校验注解:文章状态校验示例
java·前端·spring boot
lgily-12257 分钟前
常用的设计模式详解
java·后端·python·设计模式
IT成长史12 分钟前
deepseek梳理java高级开发工程师微服务面试题
java·微服务
茶本无香12 分钟前
Feign+Resilience4j实现微服务熔断机制:原理与实战
java·微服务·feignclient·熔断·resilience4j
遇见火星13 分钟前
Ansible模块——从控制节点向目标主机复制文件!
java·服务器·ansible
小码ssim16 分钟前
通过POI实现对word基于书签的内容替换、删除、插入
java·word
香饽饽~、30 分钟前
函数式方法的实现(JDK8+)
java·服务器
付朝鲜41 分钟前
用自写的jQuery库+Ajax实现了省市联动
java·前端·javascript·ajax·jquery
小赵面校招44 分钟前
Spring Boot整合MyBatis全攻略:原理剖析与最佳实践
java·spring boot·mybatis