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

相关推荐
非学无以质疑15 天前
Java中的SPI机制
java·后端·编程语言·java面试
飞滕人生TYF1 个月前
Java retainAll() 详解
java·开发语言·windows·java基础
木小同1 个月前
JAVA基础之NIO
面试·java基础·nio
linweidong2 个月前
宁德时代Java面试题及参考答案
java·大厂面试·后端面试·java面试·java面经·java校招·后端offer
阑梦清川2 个月前
Java--集合(三)之vector&linkedlist&hashset结构
java·vector·集合·linkedlist·hashcode·vectorhashcode
雷神乐乐2 个月前
JavaSE——集合4:List接口实现类—LinkedList
java·arraylist·linkedlist
小小怪下士 XIA2 个月前
JAVA的ArrayList 和 LinkedList的区别
java·开发语言·计算机·程序员·arraylist·linkedlist·区别
乔没乔见Joe3 个月前
在多态的方法调用中为什么会出现“左边编译左边运行”的现象?多态创建的对象到底是谁属于父类还是子类?通过深扒集合remove方法调用理解其原理
java·开发语言·多态·arraylist·collection集合·编译与运行·问题与报错
银氨溶液3 个月前
IO模型---BIO、NIO、IO多路复用、AIO详解
java·开发语言·java基础·io模型
只吹45°风3 个月前
Java-ArrayList和LinkedList区别
java·arraylist·linkedlist·区别