说一下ArrayList和LinkedList的区别

说一下ArrayList和LinkedList的区别

1、首先,他们的底层实现数据结构的不同,ArrayList底层是基于数组的,LinkedList的底层是基于链表实现的

2、. 由于底层数据结构的不同。他们所适用的场景也不一样,ArrayList由于基于数组实现的更适合随机查找,LinkedList由于基于链表实现的更适合于添加和删除,他们二者是查询。添加。删除的时间复杂度也不一样

操作ArrayListLinkedList
读取get()根据下标直接查询,复杂度为O(1遍历获取,复杂度O(n)
添加add(E)直接尾部添加,复杂度O(1)直接尾部添加,复杂度O(1)
指定位置添加add(index ,E)查询后添加,插入位置后面的元素向后移动一个单位,复杂度O(n)查询后,指针指向操作,复杂度O(n)
删除remove(E)删除指定元素,后面的元素需要逐个移动,复杂度O(n)直接指针操作,复杂度O(1)

3、另外ArrayList和LinkedList都实现了List接口,但是LinkedList还额外实现了Deque接口,所以LinkedList还可以当作队列来使用。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值