2.ArrayList和LinkedList的区别是什么?

简介: 2.ArrayList和LinkedList的区别是什么?

● ArrayList基于动态数组实现的非线程安全的集合;LinkedList基于链表实现的非线程安全的集合。
● 对于随机index访问的get和set方法,一般ArrayList的速度要优于LinkedList。因为ArrayList直接通过数组下标直接找到元素;LinkedList要移动指针遍历每个元素直到找到为止。
● 新增和删除元素,一般LinkedList的速度要优于ArrayList。因为ArrayList在新增和删除元素时,可能扩容和复制数组;LinkedList实例化对象需要时间外,只需要修改指针即可。
● LinkedList集合不支持 高效的随机随机访问(RandomAccess)
● ArrayList的空间浪费主要体现在在list列表的结尾预留一定的容量空间,而LinkedList的空间花费则体现在它的每一个元素都需要消耗相当的空间

相关文章
Arrays.asList、ArrayList.subList使用规范
Arrays.asList、ArrayList.subList使用规范
|
7天前
|
索引
ArrayList和LinkedList的区别
ArratList的底层使用动态数组,默认容量为10,当元素数量到达容量时,生成一个新的数组,大小为前一次的1.5倍,然后将原来的数组copy过来; 因为数组有索引,所以ArrayList查找数据更快,但是添加数据效率更低 LinkedList的底层使用链表,在内存中是离散的,没有扩容机制;LinkedList在查找数据时需要从头遍历,所以查找慢,但是添加数据效率更高
|
6月前
|
存储 安全 Java
java面试基础 -- ArrayList 和 LinkedList有什么区别, ArrayList和Vector呢?
java面试基础 -- ArrayList 和 LinkedList有什么区别, ArrayList和Vector呢?
61 0
|
安全
ArrayList 和 LinkedList 的区别【重要】
ArrayList 和 LinkedList 的区别【重要】
67 0
|
6月前
|
存储 安全
ArrayList 和 LinkedList 的区别
ArrayList 和 LinkedList 的区别
|
存储 Java
Java中 List集合接口及其主要的实现类ArrayList,Vector,LinkedList的详解
Java中 List集合接口及其主要的实现类ArrayList,Vector,LinkedList的详解
65 0
|
安全
List和ArrayList的区别
List和ArrayList的区别
72 0
ArrayList与LinkedList移除指定元素对比(源码分析)
ArrayList与LinkedList移除指定元素对比(源码分析)
51 0
Arrays.asList() 和 new ArrayList() 的区别(详解)
Arrays.asList() 和 new ArrayList() 的区别(详解)
263 0
Arrays.asList() 和 new ArrayList() 的区别(详解)
|
存储 程序员 索引
List集合和其子类ArrayList、LinkedList
List集合和其子类ArrayList、LinkedList
139 1