【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 通过链表连接元素,每一个元素都包含前后节点,占用的空间比较大

相关推荐
eddietao1 分钟前
什么是 fail-fast?什么是 fail-safe?
java·面试
程序员小羊!1 分钟前
05 JAVA面向对象
java·开发语言
MrJson-架构师3 分钟前
AgentScope Java 2.0:打造分布式、企业级智能体底座
java·开发语言·分布式
凡人叶枫3 分钟前
Effective C++ 条款01:视 C++ 为一个语言联邦
linux·开发语言·c++·effective c++·编程范式·语言联邦
我爱吃土豆19 分钟前
Agent 的记忆机制
开发语言·数据库·人工智能
白露与泡影9 分钟前
SEATA:Server 到 Golang Client 全链路走读
开发语言·后端·golang
小小龙学IT15 分钟前
Go 后端开发实战:构建高性能 RESTful API 服务
开发语言·golang·restful
fengxin_rou23 分钟前
深入理解Java类加载机制:从原理到实战详解
java·开发语言
糖果店的幽灵25 分钟前
Spring AI 从入门到精通-Prompt 工程
java·spring·prompt
薇茗25 分钟前
【C++】类与对象 核心篇
开发语言·c++