ArrayList 和 LinkedList 的区别【重要】

简介: ArrayList 和 LinkedList 的区别【重要】

1.ArrayList 是基于数组存放的集合,LinkedList 是基于链表存放的集合。

2. 他们都是 List 集合的实现类,且都是非线程安全的。

ArrayList 的初始容量是 10,每次扩容的话是之前长度的 1.5 倍,且通过内存拷贝来实现数组的复制,提供性能。因为 ArrayList 是基于数组实现的,所以可以通过索引来进行快速的定位查询,对于随机 index 访问的 get 和 set 方法,一般 ArrayList 的速度要优于 LinkedList。但在删除操作上效率很慢,要涉及到元素移动。

而 LinkedList 是基于双链表实现的,所以在添加、删除操作上效率比较高,不涉及元素的移动,只需要修改指针;但在查询方面效率很差,因为要一个元素一个元素遍历,直到找到目标元素。

4. 内存占用:由于 ArrayList 在初始化时就会分配一定的连续空间,因此它的内存占用较为稳定,但当元素数量超出容量时需要重新分配空间,开销较大。而 LinkedList 则是动态申请内存,每个元素包含两个指针,因此内存占用相对较大。

相关文章
|
2月前
|
存储 安全 Java
ArrayList vs. LinkedList: Java集合框架的比较与应用
ArrayList vs. LinkedList: Java集合框架的比较与应用
|
7月前
|
存储 Java 索引
每日一道面试题之ArrayList 和 LinkedList 的区别是什么?
每日一道面试题之ArrayList 和 LinkedList 的区别是什么?
|
4月前
|
存储 安全
ArrayList 和 LinkedList 的区别
ArrayList 和 LinkedList 的区别
|
4月前
面试题之:ArrayList和LinkedList有哪些区别
面试题之:ArrayList和LinkedList有哪些区别
|
5月前
|
存储 Java 索引
Java集合框架:ArrayList和LinkedList的区别是什么?
Java集合框架:ArrayList和LinkedList的区别是什么?
24 0
|
5月前
|
存储
Arrylist 与 Linkedlist 的区别
Arrylist 与 Linkedlist 的区别
26 1
|
8月前
|
存储 容器
集合框架之ArrayList和LinkedList的区别
集合框架之ArrayList和LinkedList的区别
39 0
|
11月前
|
存储 设计模式 算法
ArrayList和LinkedList
介绍ArrayList和LinkedList
|
存储 算法
ArrayList与LinkedList的比较
在做ArrayList与LinkedList的比较之前,必须先对这两个数据结构有一定的学习和掌握,之前2篇文章分别讲了ArrayList与LinkedList的介绍和源码讲解
107 0
ArrayList与LinkedList的比较
|
存储 Java 索引
17. 什么情况用ArrayList or LinkedList呢?
17. 什么情况用ArrayList or LinkedList呢?
89 0
17. 什么情况用ArrayList or LinkedList呢?