【Java面试题】ArrayList和LinkedList有什么区别

这道题考的是数据结构

ArrayList 和 LinkedList 是 java 集合框架中,list 接口下的两个实现类。

以下从三个方面来讲述ArrayList 和 LinkedList 的区别

目录

[1. 内部的实现方面](#1. 内部的实现方面)

[2. 数据访问的时间复杂度不同](#2. 数据访问的时间复杂度不同)

3.空间占用方面


1. 内部的实现方面

ArrayList 内部使用的是数组的实现,通过索引来访问元素,支持快速随机访问。

LinkeList 内部使用的是双向链表来实现,每一个元素都包含一个指向前一个元素

和后一个元素的引用,适合插入和删除等操作。

2. 数据访问的时间复杂度不同

ArrayList 的时间复杂度是 O(1)

LinkedList 的时间复杂度为 O(n),是因为LinkedList 需要从头部或者尾部开始链表

直到找到元素的位置。

3.空间占用方面

ArrayList 使用数组来存储数据,占用的空间是连续的。

为何占用的空间是连续的?

可以参考:ArrayList 的自动扩容机制

https://blog.csdn.net/m0_67930426/article/details/134388002

LinkedList 通过链表连接元素,每一个元素都包含前后节点,占用的空间比较大

相关推荐
ZHW_AI课题组11 分钟前
Python 调用百度智能云 API 实现地址识别
开发语言·人工智能·python·机器学习·百度·数据挖掘
SXJR19 分钟前
spring boot + langchain4j +milvus实现向量存储
java·spring boot·后端·大模型·milvus·rag·langchain4j
武子康24 分钟前
Java-27 深入浅出 Spring - 实现简易Ioc-03 在上节的业务下手动实现IoC 从 XML 配置到 BeanFactory 反射注入
java·后端·mybatis
88号技师29 分钟前
2026年2月一区SCI-交叉传播优化算法Propagation Alongside Crossover-附Matlab免费代码
开发语言·算法·数学建模·matlab·优化算法
二哈赛车手29 分钟前
新人笔记---idea索引失效问题解决方案
java·笔记·spring·elasticsearch·intellij-idea
A.零点34 分钟前
【2个月 C 语言从入门到精通:零基础系统教程】第十二讲:深入了解指针(五)
c语言·开发语言·网络·笔记·visual studio
飞天狗11144 分钟前
零基础JavaWeb入门——第五课第一小节:九大内置对象 · 第1个:request(请求对象)
java·开发语言·前端·后端·servlet
z落落44 分钟前
C#ToolStrip+StatusStrip 状态栏实时显示系统时间+NotifyIcon系统托盘
开发语言·c#
a15108416931 小时前
记一次大模型探索
java·服务器·前端
插件开发1 小时前
vs2015 cuda c++ 线程号的计算详解
开发语言·c++·算法