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)
相关推荐
sheji34162 分钟前
【开题答辩全过程】以 小说阅读平台的设计为例,包含答辩的问题和答案
java
better_liang8 分钟前
每日Java面试场景题知识点之-JVM
java·jvm·面试题·内存管理·性能调优·垃圾回收
IT 行者10 分钟前
Spring Authorization Server 迁移至 Spring Security 7.0:变革与展望
java·数据库·spring
AscendKing17 分钟前
java poi word首行插入文字
java·c#·word
鸽鸽程序猿24 分钟前
【JavaEE】【SpringCloud】概述
java·spring cloud·java-ee
计算机学姐28 分钟前
基于SpringBoot的共享单车管理系统【2026最新】
java·spring boot·后端·spring·java-ee·intellij-idea·mybatis
Coder_Boy_29 分钟前
Spring AI 源码核心分析
java·人工智能·spring
、BeYourself30 分钟前
Spring AI ChatClient -Prompt 模板
java·后端·spring·springai
专注于大数据技术栈37 分钟前
java学习--第三代日期时间
java·学习
Yang-Never40 分钟前
Android 内存泄漏 -> LiveData如何解决ViewMode和Activity/Fragment之间的内存泄漏
android·java·开发语言·kotlin·android studio