Java面试题05-ArrayList和LinkedList的区别

1、ArrayList和LinkedList都实现了List接口、Cloneable接口和Serializable接口,另外LinkedList额外实现了Deque接口。

2、LinkedList实际上是一个双端队列。

public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable

public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, Serializable

3、ArrayList底层是使用数组进行实现的,主要的特点就是查询元素速度快,增加元素、删除元素的效率可能就低一些。
LinkedList底层是使用链表实现的,主要的特点就是增加元素、删除元素的效率可能就高一些,但是查询元素速度比较慢。

transient Object[] elementData;  // ArrayList底层

transient LinkedList.Node<E> first;
transient LinkedList.Node<E> last; // LinkedList底层

4、由于底层的数据结构不同,他们所适应的场景也是不同的,ArrayList更适合随机查询,而LinkedList更适合添加和删除元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值