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底层是链表,查询慢、增删快

相关推荐
Java爱好狂.17 小时前
Java面试Redis核心知识点整理!
java·数据库·redis·分布式锁·java面试·后端开发·java八股文
wuguan_1 天前
C#之ArrayList
c#·arraylist
努力发光的程序员2 天前
互联网大厂Java求职面试实录
java·jvm·线程池·多线程·hashmap·juc·arraylist
Java爱好狂.5 天前
如何用JAVA技术设计一个高并发系统?
java·数据库·高并发·架构设计·java面试·java架构师·java八股文
Java爱好狂.5 天前
复杂知识简单学!Springboot加载配置文件源码分析
java·spring boot·后端·spring·java面试·后端开发·java程序员
a程序小傲6 天前
京东Java面试被问:Spring拦截器和过滤器区别
java·面试·京东云·java八股文
Javatutouhouduan7 天前
Java面试常问Redis核心知识点整理!
java·数据库·redis·java面试·后端开发·java架构师·java程序员
程序员三明治9 天前
【Java基础】序列化到底是什么?有什么用?实现原理?
java·开发语言·后端·java基础·序列化·反序列化
huohuopro11 天前
java基础深度学习 #1
java·开发语言·java基础
better_liang11 天前
Java大厂面试:谢飞机的电商系统架构面试实录
分布式锁·java面试·jvm调优·秒杀系统·redis缓存·tcc事务