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

相关推荐
只吹45°风21 小时前
Java-ArrayList和LinkedList区别
java·arraylist·linkedlist·区别
linweidong1 天前
作业帮大数据面试题及参考答案
大厂面试·java面试·牛客网·flink面试·校招面经·flink面经·hadoop面试
银河流浪家0079 天前
java基础 | 动态代理
java·后端·java基础
海棠未语10 天前
java常用集合方法
java·开发语言·后端·集合·java基础
杨侨治20 天前
Spring&AOP&Spring事物管理
java·开发语言·数据库·笔记·spring·mybatis·java基础
北顾丶1 个月前
Redis作为缓存,如何与MySql的数据进行同步?
java·开发语言·redis·mysql·缓存·java基础·java面试
李东平|一线码农1 个月前
MySQL 是如何实现数据的排序的?
java面试
栗筝i2 个月前
Java 并发编程:Java 线程池的介绍与使用
java基础·栗筝i 的 java 技术栈·java 并发·java 线程池
Violet永存2 个月前
Java之Java基础二十(集合[上])
java·开发语言·java基础
北顾丶2 个月前
== 与 equals 的区别
java·开发语言·jvm·java基础