Arraylist与LinkedList的区别

Arraylist


概念

  1. Arraylist非线程安全
  2. Arraylist 底层使用的是Object数组
  3. ArrayList 采用数组存储,插入和删除元素的时间复杂度受元素位置的影响
  4. ArrayList 支持快速随机访问,就是通过元素的序号快速获取元素对象
  5. ArrayList的空间浪费主要体现在列表的结尾会预留一定的容量空间
  6. Arraylist可变大小的,可以动态的扩容
  7. ArrayList底层是数组,查询快,增删慢

LinkedList


概念

  1. LinkedList非线程安全
  2. LinkedList 底层使用的是双向链表
  3. LinkedList 采用链表存储,插入删除元素时间复杂度不受元素位置的影响
  4. LinkedList 在添加和删除元素时比Arraylist性能更好一些
  5. LinkedList 不支持高效的随机元素访问
  6. LinkedList的占用空间更大,因为LinkedList要存放直接后继和直接前驱以及数据
  7. LinkedList底层是链表,查询慢、增删快

相关推荐
Javatutouhouduan1 天前
普通Java程序员如何高效学习JVM?
java·jvm·java虚拟机·java面试·后端开发·java编程·java八股文
東雪木3 天前
多线程与并发编程 专属复习笔记
java·开发语言·笔记·java面试
Javatutouhouduan4 天前
Java面试大厂真题汇总!
java·java面试·java面试题·后端开发·java编程·java架构师·java八股文
青山师5 天前
动态规划算法深度解析:从状态转移方程到工业级优化
数据结构·算法·面试·动态规划·代理模式·java面试
Java爱好狂.5 天前
Redis高级笔记:深入浅出Java面试高频考点!
java·数据库·redis·后端·java面试·java程序员·java八股文
東雪木6 天前
JVM 与 Java 内存模型 专属复习笔记
java·jvm·笔记·java面试
東雪木8 天前
异常体系、IO 与 NIO 专属复习笔记
java·笔记·学习·nio·java面试
Java爱好狂.9 天前
Java程序员体系化学习路线(2026最新版)
java·后端·java面试·java架构师·java程序员·java八股文·java学习路线
Tsuki_tl10 天前
【面试高频】常见锁策略
多线程·synchronized·八股文·java面试·锁机制·悲观锁·java后端面试
深蓝轨迹10 天前
Java 集合框架超全解 · 底层源码|集合对比|HashMap 扩容原理
java·hashmap·集合框架·arraylist·linkedlist