ArrayList 和 LinkedList 的区别【重要】

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

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

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

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

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

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

相关文章
|
7月前
|
存储 安全 Java
ArrayList vs. LinkedList: Java集合框架的比较与应用
ArrayList vs. LinkedList: Java集合框架的比较与应用
|
1月前
|
索引
ArrayList和LinkedList的区别
ArratList的底层使用动态数组,默认容量为10,当元素数量到达容量时,生成一个新的数组,大小为前一次的1.5倍,然后将原来的数组copy过来; 因为数组有索引,所以ArrayList查找数据更快,但是添加数据效率更低 LinkedList的底层使用链表,在内存中是离散的,没有扩容机制;LinkedList在查找数据时需要从头遍历,所以查找慢,但是添加数据效率更高
|
存储 Java 索引
每日一道面试题之ArrayList 和 LinkedList 的区别是什么?
每日一道面试题之ArrayList 和 LinkedList 的区别是什么?
|
7月前
|
存储 安全
ArrayList 和 LinkedList 的区别
ArrayList 和 LinkedList 的区别
|
7月前
面试题之:ArrayList和LinkedList有哪些区别
面试题之:ArrayList和LinkedList有哪些区别
|
7月前
|
存储 Java 索引
Java集合框架:ArrayList和LinkedList的区别是什么?
Java集合框架:ArrayList和LinkedList的区别是什么?
68 0
|
存储 容器
集合框架之ArrayList和LinkedList的区别
集合框架之ArrayList和LinkedList的区别
75 0
|
存储 设计模式 算法
ArrayList和LinkedList
介绍ArrayList和LinkedList
ArrayList与LinkedList获取指定元素对比(源码分析)
ArrayList与LinkedList获取指定元素对比(源码分析)
78 0
|
存储 算法
ArrayList与LinkedList的比较
在做ArrayList与LinkedList的比较之前,必须先对这两个数据结构有一定的学习和掌握,之前2篇文章分别讲了ArrayList与LinkedList的介绍和源码讲解
141 0
ArrayList与LinkedList的比较