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

相关推荐
述雾学java2 天前
Servlet、HttpServletRequest、HttpServletResponse、静态与动态网页、jsp、重定向与转发
java·开发语言·servlet·java基础
述雾学java7 天前
Servlet、Servlet的5个接口方法、生命周期、以及模拟实现 HttpServlet 来写接口的基本原理
java·servlet·网络编程·java基础
暗诺星刻7 天前
Java 记忆链表,LinkedList 的升级版
java·链表·arraylist·linkedlist·记忆链表
述雾学java10 天前
TCP、UDP协议的应用、ServerSocket和Socket、DatagramSocket和DatagramPacket
tcp/ip·udp·网络编程·java基础
述雾学java16 天前
反射、 Class类、JVM的类加载机制、Class的常用方法
java·java基础·java核心基础
微微%20 天前
Java运算符
java·java基础·运算符
xiao--xin21 天前
什么是JVM
jvm·笔记·面试·java基础
土豆炒马铃薯。25 天前
【Java 基础(人话版)】Java 虚拟机(JVM)
java·开发语言·jvm·后端·java基础·虚拟机
土豆炒马铃薯。1 个月前
【Java 基础(人话版)】Java SE vs Java EE
java·开发语言·spring boot·java-ee·java基础·java-se
FLZJ_KL2 个月前
【设计模式】【行为型模式】策略模式(Strategy)
java·设计模式·策略模式·java基础