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

相关推荐
gugucoding3 小时前
57. 【Java】日志框架:SLF4J与Logback
java·开发语言·logback
今天的砖头有点烫手啊3 小时前
JVM 调优实战:从 GC 日志到参数优化,一次完整排查
java·jvm
此生决int3 小时前
深入理解C++系列(15)——AVL树
开发语言·c++
筱璦3 小时前
PHP+ VUE3机构级股票分仓管理交易系统源码可出
开发语言·php·vue3·量化·股票分仓
爱奥尼欧4 小时前
10.C++ string 实现详解
java·开发语言·c++
小飞学编程...4 小时前
【equals 、Comparable、Comparator 三者的区别】
java·python
骇客野人4 小时前
Java分布式任务调度方案(完整落地指南)
java·开发语言·分布式
JacksonMx4 小时前
Spring @Async 坑点 + 改造方案
java·开发语言
你怎么知道我是队长4 小时前
IPv6 地址完全解析:从结构到实战
开发语言·php
Dovis(誓平步青云)4 小时前
牛奶不能减成负数:冰箱库存的筛选、去重与不可变更新
android·java·开发语言